В настоящее время у меня есть следующий контекст для модели и базы данных для моей Entity Framework. Взаимоотношение выглядит следующим образом: TableA и TableB имеют отношение много-много.Entity Framework 5.0 - Написание запроса для отношения многих ко многим
DbContext:
public partial class MyContext : DbContext
{
public MyContext (string connString)
: base(connString)
{
this.Configuration.ProxyCreationEnabled = false;
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
modelBuilder.Entity<TableA>().HasMany(x => x.TableB).WithMany(
x => x.TableA).Map(m =>
{
m.ToTable("TableC");
m.MapRightKey("B_ID");
m.MapLeftKey("C_ID");
});
}
public DbSet<TableA> TableA { get; set; }
public DbSet<TableB> TableB { get; set; }
}
Сущности:
public partial class TableA
{
public TableA()
{
this.TableB = new List<TableB>();
}
[Key]
public int A_ID { get; set; }
public string A_Name { get; set; }
public virtual ICollection<TableB> TableB { get; set; }
}
public partial class TableB
{
public TableB()
{
this.TableA = new List<TableA>();
}
[Key]
public int B_ID { get; set; }
public string B_Name { get; set; }
public virtual ICollection<TableA> TableA { get; set; }
}
Примечание: Поскольку таблица C является Pure Junction Table, Entity Framework не требует Entity для него.
Когда я запускаю следующую команду:
MyContext.TableA.GetList();
Он возвращает список объектов Таблица А по мере необходимости, однако для каждого из объектов в списке не включает список TableB имущества, указанного в Определение сущности.
Такое же поведение происходит, когда я
MyContext.TableB.GetList();
ли я установить это правильно или я упускаю некоторые тонкие настройки?
Это просто предположение, но ленивая загрузка, вероятно, отключена, потому что вы установили ProxyCreationEnabled в false. Вам либо нужно удалить эту строку, либо загрузить загруженную информацию. –
Это, похоже, решило мою проблему. Пожалуйста, продолжайте и отправьте это как ответ, если хотите. Спасибо Мортен Мертнер. – nav
Спасибо, просто рад помочь. –