EntityFramework+Wcf 模板 for CodeSmith

原创模板,转载请注明地址

EntityFramework+Wcf模板使用说明

1.   目录说明

                            

通用分页查询方法类生成模板

Wcf服务文件*.svc生成模板

Wcf服务接口文件生成模板

主模板文件

通用分页存储过程

Wcf服务.cs文件生成模板

Wcf服务数据库操作逻辑类生成模板

Wcf服务客户端调用类生成模板

Wcf服务配置文件生成模板

1.   使用说明

1.1.  系统项目组成

                                                

解决方案文件

服务测试项目

Ado.net实体数据模型层

Wcf服务数据库操作逻辑层

Wcf服务层

Wcf服务接口实现层

 

1.2.  模板使用步骤

第一步:

建立如下结构解决方案

 

在MyNamespace.Service.data项目中,添加Ado.net实体数据模型(*.edmx),并重命名实体容器名称(entities)。

步骤如图:  
 

选择从数据库生成,点击下一步。

 

选择或新建连接,勾选【是】和【将App.Config…】,并点击下一步。

 

选择【表】、【视图】、【存储过程】,填写【模型命名空间】并点击完成。

 

修改实体容器名称。

 

第二步:

打开主模板文件,如下图所示,

 

1)         填写输出目录(outputdirectory)

2)         填写实体容器名称(entities),此名称在Ado.net实体数据模型属性中自定义

3)         填写命名空间(namespace)

4)         选择需要生成的表(tables)

 

点击生成按钮(generate),输出内容:

表示生成成功。

第三步:

 

  1. 将MyNamespace.Service.entity下的文件和根目录下的Class_Base.cs放入MyNamespace.Service.entity项目,并添加引用MyNamespace.Service.data和System.Data.Entity。
  2. 将MyNamespace.Service.host下的文件放入MyNamespace.Service.host项目,并添加引用MyNamespace.Service.service。
  3. 将MyNamespace.Service.service下的文件放入MyNamespace.Service.service项目,并添加引用System.ServiceModel、System.Data.Entity和MyNamespace.Service.data,MyNamespace.Service.entity。

第四步:

将生成文件根目录下的Web.config文件放入MyNamespace.Service.host项目,编辑该文件内容,如下图所示:

 

将注释配置节,替换为Ado.net实体数据模型(*.edmx)项目中App.config中的connectionstring内容。其中的system.serviceModel节服务配置内容,可自行根据项目需求修改。

第五步:

发布wcf服务。

右键点击MyNamespace.Service.host项目,选择【发布】,将服务发布到IIS,以便Web应用程序中调用。

第六步:

         将MyNamespace.Web.Wcf下的文件放入Web应用程序下调用wcf服务的项目中,并为该项目添加服务引用,并将命名空间修改为ServiceReference_表名的格式,修改高级选项,将集合类型选为System.Collections.Generic.List后点击确定。

第七步:

将模板根目录中的proc_pager.sql存储过程导入数据库。

第八步:

在Web应用程序中添加MyNamespace.Web.Wcf引用,并调用MyNamespace.Web.Wcf中的方法,并且将MyNamespace.Web.Wcf项目下的app.config中的<system.serviceModel>配置节内容复制到Web应用程序项目下Web.config中。

2.   备注说明

  1. 此模板所生成方法仅限通用增、删、改、分页查询等方法,可根据项目需求自行修改。
  2. .NET版本为4.0,IIS版本为7.0(Win7旗舰版内置),使用VS2010,SqlServer2008R2,其余版本未作测试。
  3. 此模板根据个人项目习惯修改而来,如不能满足需求,请自行修改。
  4. 出现错误:

 

解决办法:

适当修改MyNamespace.Web.Wcf项目下的app.config中的maxReceivedMessageSize和maxBufferSize属性值为更大值。

  5.出现错误:

 

解决办法:

适当修改MyNamespace.Web.Wcf项目下的app.config中的readerQuotas配置节中的maxDepth属性为更大值。

  6.出现错误:

 

解决办法:

适当修改MyNamespace.Web.Wcf项目下的app.config中的readerQuotas配置节中的maxArrayLength属性为更大值。

  7.关于Demo:

参考demo文件夹下的UsingEFT,包含两个解决方案,Liang.UseEFT.Service为wcf服务端,WebEFT为web调用端。

 

模板下载

posted @ 2013-07-09 13:38  梁坤  阅读(1342)  评论(2编辑  收藏  举报