[英]Navigation property without foreign key constraint
我有實體:
[Table("Currency")]
public class Currency
{
[Key]
public int CurrencyId { get; set; }
public string Name { get; set; }
public char Symbol { get; set; }
}
[Table("Invoice")]
public class Invoice
{
[Key]
public int InvoiceId { get; set; }
public int CurrencyId { get; set; }
public int Amount { get; set; }
// public virtual ICollection<Currency> CurrencyList { get; set; }
}
我需要每張發票都包含數據庫中所有可能的貨幣。 如果我只是將導航屬性設置為注釋行,那么系統將嘗試隱式創建其自己的外鍵約束,該約束實際上並不存在,然后給出錯誤。
有沒有辦法制作沒有FK的導航道具?
我不認為導航屬性是您要找的東西。 此msdn文章更深入地討論了導航屬性, http://msdn.microsoft.com/zh-cn/library/vstudio/bb738520( v = vs.100) .aspx
每個對象都可以為其參與的每個關系具有導航屬性。
特別是這句話和“修改關系”和“導航關系”這兩個部分更多地指出了以下事實:這些屬性專門用於EF關系,如果兩個對象之間沒有關系,則不應有導航屬性。
@carlosfiguira對助手類有一個很好的想法,我也同意。 但是在將輔助代碼添加到CodeFirst模型時聽到了您的問題。
我的建議是創建一個具有發票屬性和貨幣清單的復合模型。 我以前尤其是在Web模式中已經做到這一點,根據使用情況,該類型的復雜對象可能稱為ViewModel。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.