一千萬個為什麽

搜索

是否有一種簡單的方法可以使EntityFramework使用SQL默認值?

例如,我的大多數實體都有DateCreated和DateModified字段。這些默認設置在SQL Server中設置為GetUtcDate()。

如果我嘗試創建一個實體並且不設置這些值,我會得到一個異常,說它無法運行SQL插入,因為日期值超出範圍。有意義,因為C#默認日期是1/1/0001,而SQL Server的最小日期是1/1/1753。

那麽有沒有辦法告訴EF要麽使用SQL Server默認值,要麽嘗試插入尚未設置的列?

最佳答案

您必須將 StoreGeneratedPattern 設置為 Identity DateCreatedComputed DataModified 。它是設計師提供的。執行此操作後,您無法在應用程序中修改這些值 - 只有數據庫可以設置這些屬性。我寫了關於這個一些文章,因為這個功能在VS2010 SP1之前有bug,但是有報告稱它有時仍然無效。

轉載註明原文: 是否有一種簡單的方法可以使EntityFramework使用SQL默認值?