我使用SQLServer 2008,WebForms,C#,Frameowrk 3.5,實體框架1 我從DB生成實體模型。實體模型 - 如何在插入時使用數據庫的默認列值
我DB具有各種表格&讓我們例如一個表用戶 的它領域的ID,姓名,電子郵件,created_on,爲IS_ACTIVE和on_leave性能IS_ACTIVE,is_on_leave 默認值是DB
默認爲0(零)但是,當我嘗試使用實體模型在此表中插入記錄時,它將在這些字段中保存NULL。如何避免這種情況?我不想從我的頁面爲它們設置一個值,並且想要使用數據庫中提到的值。
我該如何做到這一點?
假設1.您有一個默認值,因爲您不希望在這些列中有空,並且2.您可以控制數據庫,這似乎是明智的做出列非空的。如果這些假設都不正確,這是一個很好的解決方法:) –
我同意第一個假設 - 如果您設置了默認值,您不希望列中出現空值,但我不同意我的解決方案是一種解決方法 - 他必須設置StoreGeneratedPattern,即使他改變列並使其不可空。如果他只在db級別設置了非空值,並且沒有設置storegeneratedpattern,那麼他將收到一個錯誤,因爲在不允許爲null的列中插入空值。 – objectbox
如果將列設置爲非空值,則從數據庫更新模型,與數據庫字段對應的屬性將爲非空值,並且EF將插入屬性類型的默認值,而不是空值。在這種情況下,屬性類型的默認值爲false,這也是數據庫中的默認值。我會說設置storegeneratedpattern治癒的問題,但使列不可爲空阻止它。 –