使用 .NET 3.5 Entity Framework 開發網站時發現:新增記錄時,DateTime 型別欄位無法使用資料庫預設值。
Users 表三欄位:
id:int,自增主鍵username:nvarchar(10),不允許 nullcreatetime:DateTime,不允許 null,預設值 getdate()使用 EF 產生實體類別,新增資料不指定 createtime:
using (LinqDemoEntities lde = new LinqDemoEntities())
{
Users user = new Users { name = "Admin" };
lde.AddToUsers(user);
lde.SaveChanges(); // 此處拋出錯誤
}
在 .edmx 檔案中,將 createtime 欄位加上 StoreGeneratedPattern="Identity" 屬性,即可使用資料庫預設值。
此為 EF 已知 Bug,設定該屬性後可正常運作。