在使用.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();
}
查找了很多资料之后,才知道这是Eentities FrameWork的一个Bug,需要将edmx文件里,createtime字段加上 StoreGeneratedPattern="Identity" 属性才行。
方法是:找到edmx文件,然后用文本工具打开,找到对应的字段属性,添加StoreGeneratedPattern=“Identity”属性,然后保存退出,就行了。
之后,重新执行上述的语句,就会用默认值插入到数据库了。
延伸阅读
- 2011-9-22-- entity,复用 Entity Framework 中英语单复数形式变换的类
- 2010-12-15-- exists,Entity SQL Language 三 Where/Exists/In/Like/参数及
- 2011-7-16-- entity,Entity Framework June 2011 CTP 新特性一瞥
- 2010-12-15-- 诊断卡代码ef,Entity Framework 学习高级篇1—改善EF代码的方法(上)
- 2011-7-13-- entity,Entity Framework的连接字符串纯粹就是毛线
- 2011-7-9-- entity,Entity Framework 实践系列 —— 搞好关系 - 生儿育女(一对多,one-to-many)
- 2010-11-24-- 日志监控,Entity Framework 缓存处理与日志监控
- 2011-3-28-- entity,我的WCF4 Rest Service及Entity Framework with POCO之旅(一)——创建一个基本的RESTful Service
- 2011-7-6-- entity,自己来控制EntityFramework4.1 Code-First,逐步消除EF之怪异现象
- 2011-3-29-- entity,我的WCF4 Rest Service及Entity Framework with POCO之旅(二)——选择请求/返回格式
最新评论