我有一個使用.Net Core 2.0在Visual Studio 2017中開發的項目的基本模型。型號以下.Net Core 2.0默認爲0
public class QuoteModel : BaseModel{
public QuoteModel()
{
GetQuoteItems = new List<QuoteItemModel>();
}
[Required]
public int QuoteTypeID { get;set; }
[Required]
[ForeignKey("QuoteTypeID")]
public QuoteTypeModel QuoteType { get;set;}
public ICollection<QuoteItemModel> GetQuoteItems { get; set; }
}
匹配,我既沒有在[必填]註釋,仍然遇到了這個問題,嘗試。問題是,如果我創建一個新的報價,QuoteTypeID默認爲0,所以如果用戶不選擇一個類型,該模型仍然有效。我更喜歡模型是否因爲沒有將外鍵默認爲一個值而使自己失效,但我無法弄清楚爲什麼外鍵默認爲一個值,儘管我的研究顯示它通常默認爲null, ID提供。
如何獲得外鍵「QuoteTypeID」沒有默認值但需要設置值?
另外,爲了清楚起見,BaseModel只是簡單地提供了我想要的大部分模型中的一些標準字段,如'CreatedOn'和'CreatedBy'。
添加一個明確的二傳手,當您設置類型 –
時,設置Id我不完全相信我遵循。如果不存在類型,我不能顯式設置類型。如果沒有設置報價類型,我的目標是報價失敗。但是,目前,它成功地將其設置爲'0',這被認爲是有效的模型,這導致拋出異常,因爲SaveChanges()調用將無法將其插入到表中。 –
你在說什麼?如果沒有類型存在,你的密鑰應該是空的。如果他們類型存在,當你在setter中設置類型時,也設置ID –