项目中如果 EF + WCF 结合使用,模式应该是EF负责读取数据库,传递数据对象给WCF,WCF再将这些对象传送给客户端。因为WCF传送的对象需要序列化,而EF默认生成的对象并没有序列化,很可能会出现EF传过来的类对象,WCF里面要再定义一次,加上序列化特性。属性明明一样,但还是需要转换:遍历、赋值,太浪费了。

一种解决的方案是,让EF生成的序列化的实体类。

这样就需要修改EF的模板。

1、在VS2012中,首先我们要下载一个模板

EF 5.x DbContext Generator with WCF Support

http://visualstudiogallery.msdn.microsoft.com/79a5b6df-0ac9-49ac-82a0-413817bd97f4

EF 6.x DbContext Generator with WCF Support

http://visualstudiogallery.msdn.microsoft.com/fad56775-1738-407d-8d9c-73140474aa34

2、打开EF项目中的.edmx文件,在关系图空白的地方右键,选“添加代码生成项”

然后添加我们下载的模板

系统这时会让我们输入模板名称,默认是Module1.tt。注意要改成我们现有的*.tt,覆盖原来,不然的话,系统会顽固地采用原来的模板。

3、保存.edmx后,发现新生成的实体类,全部序列化矣。

-----------------------------------------------------------------------------------------------

有关WCF的序列化,只有需要传递给客户端的属性,才需要序列化。比如

        public int Id { get; set; }
[DataMember]
public string Name { get; set; }

那么在客户端,只能看到属性Name,而看不到Id

最新文章

  1. drupal 7在一个form新增或者修改一个字段
  2. pitch yaw roll 的区别
  3. EBS 用户及其联系人的失效时间
  4. iOS使用AVFoundation实现二维码扫描(ios7以上)——转载
  5. JAVA学习第五十七课 — IO流(十一)
  6. BZOJ1264: [AHOI2006]基因匹配Match
  7. csdn发博文验证码缺陷
  8. js中的json对象
  9. spring mvc中的拦截器小结 .
  10. java面向对象(一)
  11. 2017-06-22(locate shutdown half poweroff init0 reboot init 6)
  12. POJ 3608 Bridge Across Islands [旋转卡壳]
  13. word/pdf互转的链接
  14. MySQL-exists和in的区别
  15. 原生js手风琴效果
  16. 短信验证登陆-中国网建提供的SMS短信平台
  17. 【费马小定理+快速幂取模】ACM-ICPC 2018 焦作赛区网络预赛 G. Give Candies
  18. Discuz常见大问题-如何自定义单个页面
  19. .Net4.0 任务(Task)[转]
  20. ionic安装及测试

热门文章

  1. linux php全能环境一键安装,小白福利!
  2. Showplan 逻辑运算符和物理运算符参考
  3. linux共享库的版本控制
  4. [Windows Server 2012] PHPWind安全设置
  5. block要用copy修饰,还是用strong
  6. ionic 创建某个文件下的page
  7. mysql cpu 100% 满 优化方案 解决MySQL CPU占用100%的经验总结
  8. iOS 中plist文件中配置key值冲突的现象
  9. 平衡树前置——BST
  10. sql 区分大小写查询