我一直負責移植舊的應用程序來MVC 3,想先用EF的代碼複製其現有的數據庫模式。當前的代碼庫中散佈着硬編碼的SQL命令,因此我提出的模型必須與當前系統期望的「兼容」。我知道我可以使用EF的Database First來做到這一點,但現有的模式非常簡單,我認爲沒有理由不先使用代碼,因爲我們希望有一個堅實的基礎來構建,因爲我們正在從舊的硬編碼數據庫遷移出去互動。一對一的映射
我需要的波蘇斯樣子:
public class Owner
{
[Key]
public Guid Owner_Id { get; set; }
// Properties
public string ContactName { get; set; }
public string PhoneNumber { get; set; }
public string Email { get; set; }
// Navigational properties
public virtual ICollection<Plant> Plants { get; set; }
}
public class Plant
{
[Key]
public Guid Plant_Id { get; set; }
// Properties
public string Address { get; set; }
public string City { get; set; }
public string State { get; set; }
public string Zip { get; set; }
// Foreign Keys
public Guid Owner_Id { get; set; }
// Navigational properties
public virtual Owner Owner { get; set; }
public virtual License License { get; set; }
}
public class License
{
[Key] public Guid License_Id { get; set; }
// Properties
public int Total { get; set; }
public int Users { get; set; }
public string Key { get; set; }
// Foreign Keys
public Guid Plant_Id { get; set; }
// Navigational properties
public virtual Plant Plant { get; set; }
}
它讓我在試圖創建的背景下,這個錯誤:
「無法確定類型「之間的關聯的主要終點許可證「和」工廠「,這個關聯的主要結局必須使用關係流暢API或數據註釋來顯式配置。」
我認識到,工廠應該有一個可爲空FK參照License_Id,並且該許可證不應該有一個Plant_Id FK。但這些都是我處理過的卡片。 EF正在嘗試做什麼?
現在我收到一個新錯誤:「System.Data.Edm.EdmAssociationEnd::Multiplicity is is在'License_Plant'關係中的角色'License_Plant_Source'中無效。因爲依賴角色屬性不是關鍵屬性,所以相關角色的多重性的上界必須是「*」。不知道最後的亂碼是怎麼回事...... – Stevoman
這是相反的。 – Birey
仍然沒有去,回到原來的錯誤。 :( – Stevoman