程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> Entity Framework的默認值BUG解決方法

Entity Framework的默認值BUG解決方法

編輯:關於ASP.NET

前幾天常使用.Net 3.5裡的Entity Framework做個網站的時候,發現了一個問題:添加記錄時,對於DateTime型的數據,無法使用數據庫的默認值。

雖然不是什麼嚴重的問題,但牛脾氣上來了 ,就行解決這個問題。

具體的情況是這樣的,我的數據庫有個Users表,三個字段,id,username,createtime。

id是int型,自增長,主鍵

username是nvchar(10)型,不允許為空

createtime是DateTime型字段,不允許為空,默認值 是getdate()

如果用Entity框架生成實體類,直接添加數據,不指定createtime,那就會在SaveChanges時出錯:

using (LinqDemoEntities lde = new LinqDemoEntities())
{
Users user = new Users
{
name = "Admin"
};
lde.AddToUsers(user);
lde.SaveChanges();
}

最後在別人的指點下,才知道這是EF的一個Bug,需要將edmx文件裡,createtime字段加上 StoreGeneratedPattern="Identity" 屬性才行。

這樣就能使用數據庫默認值了。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved