我有我用的NuGet功能「代碼首先從數據庫」EF 6碼首先生成從數據庫添加Releationship
因爲這似乎是大部分現有的數據庫已經工作得很好。但是,它沒有提供數據庫所有的關鍵關係。
我有一個名爲Sessions的表和一個名爲Responses的表。響應表有一個SessionId字段。現在在舊的EDMX模型文件中,我在Sessions和Responses之間有1:*關係。這樣我可以做foundSession.Responses
以獲得該會話的回覆列表。
Code First From Database沒有創建Session.Responses關係。我已經爲會話模型添加了一個ICollection。我懷疑我還需要在'OnModelCreating'方法中添加如何建立這種關係。
我試着這樣做:
modelBuilder.Entity<Session>()
.HasMany(e => e.Responses)
.WithMany().Map(m => m.ToTable("Sessions").MapLeftKey("Id").MapRightKey("SessionId"));
但沒有奏效。它給了我一個錯誤:「無效的對象名'dbo.Sessions1'。」
我試圖基礎它關閉在同一方法另一行的:
modelBuilder.Entity<Role>()
.HasMany(e => e.Users)
.WithMany(e => e.Roles)
.Map(m => m.ToTable("RoleUser").MapLeftKey("Roles_Id").MapRightKey("Users_Id"));
但是這是一個多對多的關係。我似乎沒有看到任何1:很多。可能嗎?
我收到此錯誤:類型爲'Outcomes_Report_Engine.Models.DAL.DbResponse'的屬性'SessionId'上的ForeignKeyAttribute無效。在依賴類型「Outcomes_Report_Engine.Models.DAL.DbResponse」上未找到導航屬性「會話」。名稱值應該是有效的導航屬性名稱。 – Scottingham
你把導航屬性嗎? – IronMan84
除了解決方案中的兩大塊代碼之外,還有其他嗎? – Scottingham