У меня есть 2 класса сущностей с отношением «многие ко многим», определенными через FluentAPI. Entity1 имеет виртуальную коллекцию со связанными объектами Entity2. Entity2 не имеет этой коллекции, так как она мне не нужна.
Мои занятия выглядят так:
internal class Franchisee : UserAccount //abstract base class with more properties
{
public virtual ICollection<FranchiseOffice> FranchiseOffices { get; set; }
}
internal class FranchiseOffice: Office //abstract base class
{
<many properties, but no collection for Franchisee-objects>
}
Конфигурация отношения «многие ко многим»:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
Database.SetInitializer(new MigrateDatabaseToLatestVersion<CoreModel, Migrations.Configuration>());
//many-to-many relationship with only one navigation property
modelBuilder.Entity<Franchisee>().HasMany(u => u.FranchiseOffices).WithMany().Map(m =>
{
m.MapLeftKey("FranchiseeId");
m.MapRightKey("FranchiseOfficeId");
m.ToTable("FranchiseOffices");
});
}
Что работает : сохранение сущностей и их связывание через свойство навигации. Данные в базе данных выглядят хорошо; таблица сопоставления 'FranchiseOffices' там и заполнена данными.
Что не работает : когда я загружаю франчайзи, коллекция 'FranchiseOffices' имеет значение NULL, хотя для нее в базе данных имеются данные.
Единственное отличие от онлайн-примеров, которые я вижу, заключается в том, что я использую унаследованные классы с обеих сторон. Я пытался выяснить откровенность детского класса, но результат был тот же. Есть идеи?