У меня было много проблем с этим материалом, и я не могу решить его даже на более простом примере.
У меня есть служба WCF, которая возвращает список объектов (из моей модели сущности).
Модель имеет только 2 таблицы:
Персона, с идентификатором, именем и office_id (внешний ключ)
и офис, с идентификатором и адресом
Я делаю действительно простой запрос linq, который возвращает первого из этих людей. Это работает нормально, даже метод "ToList ()" работает нормально.
Проблема заключается в том, что при попытке вернуть его через службу происходит сбой с «Необработанным исключением типа« System.StackOverflowException », возникшим в mscorlib.dll»
Я думаю, это связано со свойствами навигации, когда он пытается сериализовать объект Person. Эти свойства навигации отображаются как в модели Person, так и в модели Office, таблица Person имеет свойство навигации "Office", но таблица Office также имеет свойство навигации "Person" !!
Я думаю, что эти свойства навигации могут быть полезны для других сценариев, но я не могу найти способ не загружать это содержимое или, по крайней мере, не сериализовать и не возвращать его через службу !!
Это запрос linq (работает, в списке действительно один человек):
var query = (from chosen in entities.person
select chosen).First<person>();
return query.ToList<person>();
Кто-нибудь когда-нибудь видел что-то подобное? У меня было несколько проектов WCF-Linq и у меня никогда не было подобных проблем.
Заранее спасибо.