Как удалить циклическую ссылку в Entity Framework? - PullRequest
8 голосов
/ 21 января 2010

Циклическая ссылка между объектами «Мой клиент» и «Заказ» вызвала исключительную ситуацию при сериализации Есть ли способ заставить EF генерировать однонаправленную ссылку между этими двумя объектами? Заранее спасибо!

Ответы [ 6 ]

13 голосов
/ 21 января 2010

Когда мне нужно сериализоваться, я обычно проецирую на другие типы. Это исключает циклические ссылки, а также другие данные, которые я не хочу сериализовать. Например:

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);
5 голосов
/ 20 июля 2011

Я решил эту проблему в EF 3.5, изменив свойство навигации ребенка для Getter с public на Internal.

5 голосов
/ 21 января 2010

Когда вы создаете ассоциацию в конструкторе моделей (щелкните правой кнопкой мыши add-> Ассоциации), вы получите всплывающее окно, которое выглядит следующим образом:

Add association window

Обратите внимание на флажки свойств навигации, вы можете отменить их выбор, если вы не хотите, чтобы они были сгенерированы. Чтобы решить проблему с круговыми ссылками, убедитесь, что отмечен только один или ни один, а не оба.

1 голос
/ 11 июля 2013

На уровне сервера:

[DataContract(IsReference = true)] 

MSDN

0 голосов
/ 26 июля 2014

Изменение геттера на внутреннее для дочерней навигации сработало для меня с authorfy framework v5 / v6 под Web API v2

0 голосов
/ 13 октября 2013

Смотреть эту страницу Я надеюсь, что смогу выжить
http://msdn.microsoft.com/en-us/data/jj574232.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...