zoukankan      html  css  js  c++  java
  • 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" 属性才行。

    这样就能使用数据库默认值了。

  • 相关阅读:
    几何——BAPC2019 K
    dsu on tree —— BAPC2019 A
    概率dp——BAPC2019 L
    计算几何+三分求极值——cf1046I
    上下文管理器
    转 -- 一行式
    转--python 基础
    转--python 面试题
    转 -- Python: 多继承模式下 MRO(Method Resolution Order) 的计算方式关乎super
    转--python之正则入门
  • 原文地址:https://www.cnblogs.com/lersh/p/1495087.html
Copyright © 2011-2022 走看看