WCF下传递EF实体对象中出现异常:无法将 EntityReference 对象序列化

近期项目采用了WCF+Entity Framework+WinForm的框架.使用一个Windows Service托管了WCF用于处理后的一些定时任务,并且充当着逻辑层来处理一些与前端的交互.在Winform运行过程中出现异常,如下图:

image

详细信息中:

 

异常详细信息

 

 

经过再三调试后我们发现,原因是在我的Winform的项目中增加了System.Data.Entity的引用后造成的.

image

 

下图是我在Winform,也就是WCF客户端中增加System.Data.Entity引用后所生成的DataItem类图

image

这时我在客户端中调用数据实体类时就会出现上述异常.可以看出在当前项目中生成的代理类完全使用了System.Data.Entity.EntityObject作为基类。但是从WCF服务端获取的数据契约类与其有所不同。

 

解决方法:

1、我去掉System.Data.Entity引用后,又重新生成了客户端代理。

image

自动生成的关系类图如下:

 

image

 

 

2、如果一定要在WCF客户端项目中引入System.Data.Entity则需要服务引用设置中将使用引用的程序集中的类型列表中将System.Data.Entity去掉便可。

image

posted @ 2011-12-13 22:08  scally  阅读(1686)  评论(0编辑  收藏  举报