2017-10-19 227 views
0

我有先在實體框架6,.NET 4.7,Visual Studio的2017型號的麻煩......實體框架類型和屬性不映射(錯誤11007和11009)

我試圖加多到0 ... 1與兩個表之間的外鍵,當我嘗試驗證模型時,我得到一個錯誤,說表中的外鍵字段沒有映射。此外,我甚至無法將新實體添加到模型中,因爲驗證時出現錯誤,說實體未映射。它是如何進入這個狀態的呢?我幾乎沒有使用它來做任何事情。

我該怎麼做才能讓它做到沒有這些錯誤?我知道這是因爲它沒有映射的東西,但它應該自動做到這一點。整個事情似乎馬虎,考慮到它的版本6.

我應該首先切換到數據庫?

謝謝。

回答

0

的一套關係許多到0 ... 1,則必須

1)創建模型和FluentApi在Context類機型中添加相關的實體

public class MainModel 
{ 
    public MainModel() 
    { 
     ChildModels= new HashSet<ChildModel>(); 
    } 

    public int Id { get; set; } 

    public virtual ICollection<ChildModel> ChildModels{ get; set; } 
} 

public class ChildModel 
{ 
    public int Id { get; set; } 

    public int? MainModelId { get; set; } 
    public MainModel MainModel { get; set; } 
} 

2)套裝關係

modelBuilder.Entity<MainModel>() 
      .HasMany(mm => mm.ChildModels) 
      .WithOptional(cm => cm.MainModel) 
      .HasForeignKey(cm => cm.MainModelId); 

在其中一個步驟中,您可能會犯錯。

數據庫首先是舊的方法,我不建議你使用它。

+0

好的謝謝你。我設法通過刪除EF創建的所有實體並重建來實現它。這重新創建了實體和映射。驗證模型,然後我可以生成數據庫。可能我會堅持模型優先。 – indigo

相關問題