欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【Entity Framework的默认值BUG解决方法】,下面是详细的分享!
Entity Framework的默认值BUG解决方法
前几天常使用.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" 属性才行。
这样就能使用数据库默认值了。
以上所分享的是关于Entity Framework的默认值BUG解决方法,下面是编辑为你推荐的有价值的用户互动:
相关问题:如何正确地使用Entity Framework Database First
答:毕设依旧在不紧不慢地以每天解决一个问题的进度进行中。今天遇到的问题就是在建立数据模型时遇到的。因为项目是基于数据库构建的,所以理所应当地采用DB First来构造实体类和DbContext类。于是想也没想就直接在项目上右键->添加->新建项->ADO.NE >>详细
相关问题:entity framework6.0变成entity framework5.0
答:你可以用NuGet先卸载6.1,再重新安装5.0。 >>详细
相关问题:如何使用Entityframework.Extended
答:Deleting [csharp] view plaincopyprint? //delete all users where FirstName matches context.Users.Delete(u => u.FirstName == "firstname"); Update [csharp] view plaincopyprint? //update all tasks with status of 1 to status of 2 co... >>详细
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
