Сначала используйте свойства навигации в коде структуры сущностей

Контекст:

  • Code First, Entity Framework 4.3.1;
  • Пользователь ----Тема, Отношение 1 ко многим ;
  • Userс public virtual ICollection<Topic> CreatedTopicsСвойство навигации (Ленивая загрузка );
  • Topicс public virtual User CreatorНавигационным свойством;
  • DataServiceController : DbDataController<DefaultDbContext>, бета-версия веб-API, бета-версия ASP.NET MVC 4, одностраничное приложение;
  • System.Json для сериализации Json;
  • Действие веб-API:

    public IQueryable<Topic> GetTopics()
    {
        // return DbContext.Topics;                   // OK
        return DbContext.Topics.Include("Creator");   //With Exception
    }
    
  • Результат:«В w3wp.exe произошло необработанное исключение платформы Microsoft.net»

Проблема заключается в том, что :я не должен добавлять свойство навигации в оба объекта(Причина Циркулярная ссылка? ), и если я удалю свойство навигации CreatedTopicsв классе User, все снова будет в порядке.

Итак, В подобном контексте, как указано выше , вот мои вопросы:

  1. Как работать со свойствами навигации в ситуации отношения 1 ко многим ;
  2. Более того, как насчет отношения Многие ко многим , мне нужно разделить его на два отношения 1 ко многим ;
  3. Каковы рекомендации и меры предосторожности при использовании свойств навигации?

Я прочитал много связанных сообщений, но все еще недостаточно ясно :(,

Спасибо за любую помощь!

Дин

6
задан Dean 4 July 2012 в 06:20
поделиться