How to remove circular reference in Entity Framework?
The circular reference between my Customer and Order entities caused a exception during serialization. Is there any way to force EF to generate one-direction refer开发者_JAVA技巧ence between these two entities? Thanks in advance!
When I need to serialize, I generally project onto other types. This eliminates circular references, plus other data I don't want serialize. For example:
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);
I have solved this problem in EF 3.5 By changing the Child's navigation property Getter from public to Internal.
When you create an association in model designer (right click add->association) you'll get a popup windows which looks like this:
Notice the navigation property check boxes, you can deselect them if you don't want them to be generated. To solve your circular reference problem, make sure only one or none are checked, not both.
On serverlevel:
[DataContract(IsReference = true)]
MSDN
Watch this page
I hope I could do to survive
http://msdn.microsoft.com/en-us/data/jj574232.aspx
The changing getter to internal for a child navigation worked for me with entitfy framework v5/v6 under Web API v2
精彩评论