Я создал объекты домена POCO, которые сопоставляются сущностям в модели домена сущности. Все работало нормально до сих пор, когда мне приходится работать с отношениями «многие ко многим».Проблема Entity Framework 4.0 POCO и много-ко многим Проблема
Предположим, у меня есть три стола.
- Блог
- BlogTag
- Tag
Вы можете видеть, что блоги и теги много-ко-многим с мостовым столом, BlogTag, который содержит внешний ключ для обеих таблиц.
У меня также есть соответствующие модели домена:
- Блоги
- BlogsTags
- Метки
Теперь я выбираю список блогов, и я пытаюсь получить доступ к определенному тег из блога ,
myBlog.BlogsTags [0] .tag
BlogTags [0] .TagForeignKey заполняется, но BlogTags [0] .tag является нулевой !!
У меня также включен LazyLoading.
Что я могу делать неправильно?
Спасибо.
Хорошо. Вот несколько исходных кодов.
мой контекст класса
public class MyContext : ObjectContext
{
public MyContext() : base(Utility.GetConnectionString(...), "containerName")
{
Blogs = CreateObjectSet<Blog>();
BlogsTags = CreateObjectSet<BlogTag>();
Tags = CreateObjectSet<Tags>();
base.ContextOptions.LazyLoadingEnabled = true;
}
public ObjectSet<Blog> Blogs { get; private set; }
public ObjectSet<BlogTag> BlogsTags { get; private set; }
public ObjectSet<Tags> Tags { get; private set; }
}
и мои POCO классы просто есть список объектов, связанных с виртуальным ключевым словом.
Побольше код может помочь диагностировать проблему. Я могу проверить, что многие для многих работают нормально. У меня есть много пользовательских объектов, которые могут иметь много ролей и наоборот. Я использую шаблон репозитория, где у меня есть общий репозиторий с свойством контекста объекта, который возвращает активный контекст EF. Внутри конструктора для поиска контекста EF я установил Lazyloading в true: base.ContextOptions.LazyLoadingEnabled = true; – Jay