我的客户和订单实体之间的循环引用导致序列化过程中出现异常。有没有办法强制EF在这两个实体之间生成单向引用?提前感谢!
我的客户和订单实体之间的循环引用导致序列化过程中出现异常。有没有办法强制EF在这两个实体之间生成单向引用?提前感谢!
当我需要序列化时,通常会将数据投影到其他类型上。这样可以消除循环引用,还可以过滤掉我不想序列化的其他数据。例如:
var q = (from c in Repository.Customers()
where c.Id == id
select new
{
Name = c.Name,
Orders = from o in C.Orders
select new
{
Date = o.Date
}
}).First();
return Json(q);
我曾在EF 3.5中解决过这个问题,方法是将子对象的导航属性Getter从public改为internal。
[DataContract(IsReference = true)]
{{链接1:MSDN}}
请关注此页面
我希望我能够幸存下来
http://msdn.microsoft.com/en-us/data/jj574232.aspx
将子导航的getter更改为internal,我在Web API v2下使用entity framework v5/v6成功实现了。