|
在使用.NET 3.5里的Entity Framework開發(fā)網(wǎng)站的時(shí)候,遇到了一個(gè)問題:添加記錄時(shí),對于DateTime型的數(shù)據(jù),無法使用數(shù)據(jù)庫的默認(rèn)值。
具體的情況是這樣的,我的數(shù)據(jù)庫有個(gè)Users表,三個(gè)字段,id,username,createtime。
id是int型,自增長,主鍵
username是nvchar(10)型,不允許為空
createtime是DateTime型字段,不允許為空,默認(rèn)值 是getdate()
如果用Entity框架生成實(shí)體類,直接添加數(shù)據(jù),不指定createtime,那就會在SaveChanges時(shí)出錯(cuò):
using (LinqDemoEntities lde = new LinqDemoEntities())
{
Users user = new Users
{
name = "Admin"
};
lde.AddToUsers(user);
lde.SaveChanges();
}
查找了很多資料之后,才知道這是Eentities FrameWork的一個(gè)Bug,需要將edmx文件里,createtime字段加上 StoreGeneratedPattern="Identity" 屬性才行。
方法是:找到edmx文件,然后用文本工具打開,找到對應(yīng)的字段屬性,添加StoreGeneratedPattern=“Identity”屬性,然后保存退出,就行了。
之后,重新執(zhí)行上述的語句,就會用默認(rèn)值插入到數(shù)據(jù)庫了。
NET技術(shù):Entity Framework的默認(rèn)值BUG解決方法,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時(shí)間聯(lián)系我們修改或刪除,多謝。