2013-02-04 13 views
5

Wyłączyłem leniwe ładowanie i tworzenie proxy w EF5 przed zwróceniem jakichkolwiek wyników w Web Api. Wszystko działało dobrze. Jednak, kiedy zaczynają Include() innym podmiotom chętny pobieraniem, niektóre obiekty JSON wyglądać następująco:

{ 
$ref: "14" 
}, 
.. correct objects .. 
{ 
$ref: "6" 
}, 
.. 

Co to "$ref" który pobiera zawarte w liście wyników?

Odpowiedz

14

Pochodzi z serializatora JSON.NET. Zachowuje referencje do obiektów. Spójrz na following blog post. Sądzę, że masz jakieś okrągłe odniesienia w twoim grafie obiektów, a JSON.NET robi to najlepiej w desperackim wysiłku, aby serializować strukturę EF bez awarii (i tak zrobiłaby większość serializatorów JSON). Nie jest to jednak standard.

Porady osobiste: Nigdy nie są serializować jednostek EF. Zawsze definiuj modele widoków i zwróć swoje metody interfejsu API sieci Web, aby wyświetlały modele widoków zawierające tylko te właściwości, które Cię interesują.

Powiązane problemy