我有一個多對多的關係設置,使我在我的上下文中;實體框架6代碼首先許多到多選擇始終爲空
protected override void OnModelCreating(DbModelBuilder modelBuilder){
modelBuilder.Entity<Module>().HasMany(m => m.Questions).WithMany()
.Map(q =>
{
q.ToTable("Modules_And_Questions");
q.MapLeftKey("ModuleId");
q.MapRightKey("QuestionId");
});
base.OnModelCreating(modelBuilder);
}
public virtual DbSet<Module> Modules { get; set; }
public virtual DbSet<Question> Questions { get; set; }
執行
_context.Modules.Where(m => m.ModuleId == 3);
將返回我適當的模塊,但問題的元素爲null。 (在數據庫中檢查這顯示模塊3有40個問題。)
斷點顯示正在命中OnModelCreating。雖然如果有幫助,但我注意到,在模型構建器中錯誤地引用引號中的任何元素都不會導致錯誤,所以我懷疑我正在調用/正確設置它。
那麼爲什麼問題是空的,它應該包含40個問題元素的列表?
如果我使用你提出的語法,我會得到一個錯誤,「不能將Lambda表達式轉換爲鍵入'string'」。 但是使用包含(「問題」)的作品。所以,你的語法應該如何工作,我錯過了某些事情? – Matt
@Matt:對於'Include'的lambda版本,您必須在代碼文件中添加'using System.Data.Entity;'。 – Slauma