关于使用WCF不能返回datacontext中的有关联表的问题
我使用WCF和Linq to SQL返回一个表,返回的方法如下
<operationContract>public function get_employees as list(of employees)
dim dc as new XDataContext
return dc.employees.tolist
end function
如果employees是一个单纯的表没有问题,如果employees关联了其他的表或被其他表关联,返回时就出现错误,请问怎样在WCF中返回有关联关系的表。
[解决办法]
这个应是延迟加载的问题。由于我现在没有使用Linq to SQL了,语法我也忘了,我用的是 ADO.NET EDM,以前在 VS 2008 SP1中能运行的代码,到了VS 2010 使用Framework 4.0时,就出现了和你所说的一样的问题,因为 FW 4.0会自动加载子表,但是子表在被序列化时会出错,因为这个时间子表还没有被实例化,这使用数据库跟踪能看得到效果,对于子表的查询语句根本就还没有生成就出错了。
using (MMContext db = new MMContext(this.entityConnection)) { db.ContextOptions.LazyLoadingEnabled = false; return db.TCompanies.ToList(); }FW使用 ContextOptions.LazyLoadingEnabled = false; 来关闭延迟加载,其默认值为true,但是这一选项在FW 3.5SP1中默认值却是false