Entity Framework的默认值BUG解决方法
2015-09-16 23:38
363 查看
摘要:最近在学习linq,博客园开设的linq专题以及园友们写的博客为我们提供了丰富的学习资料,在学习之余,我总结了一些学习过程中遇到的问题,跟大家分享一下~
在使用.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”属性,然后保存退出,就行了。
之后,重新执行上述的语句,就会用默认值插入到数据库了。
在使用.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”属性,然后保存退出,就行了。
之后,重新执行上述的语句,就会用默认值插入到数据库了。
相关文章推荐
- wxpython初学者(五)之 Skip()
- macbook安装win10后改变滚动手势方向
- 腾讯技术面试
- git操作
- 各类数据库:数据源配置
- chmod命令
- Aspose.Words 直接写response导出docx文档显示文件已损坏需要修复的解决办法
- 接口
- window.document 对象
- 用CSS、HTML编写一个两列布局的网页,右侧宽度为200px,左侧自动扩展。
- 简介与环境变量的配置
- nginx解析配置文件代码备忘
- Opencv形态学滤波-形态学梯度
- 总是TLE
- 真相大白:为什么Entity Framework不能进行跨数据库查询(附解决方法)
- 条款30:透彻了解inline的里里外外(understand the ins and outs of inlining)
- Opencv形态学滤波-开运算
- link layer transmit
- java.util.logging.Logger 使用详解
- SosoApi,编辑Swagger UI的神器