zoukankan      html  css  js  c++  java
  • Entity Framework的默认值BUG解决方法

    摘要:最近在学习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”属性,然后保存退出,就行了。

      之后,重新执行上述的语句,就会用默认值插入到数据库了。

  • 相关阅读:
    CSS Grid网格布局全攻略
    正则表达式不要背
    前端模块化的前世今生
    关于React Hooks,你不得不知的事
    精简版LINUX系统---wdOS
    TypeScript_泛型
    typescript_类
    ES5_对象 与 继承
    TypeScript_基础数据类型
    vue-route+webpack部署单页路由项目,访问刷新出现404问题
  • 原文地址:https://www.cnblogs.com/lenther2002/p/4814965.html
Copyright © 2011-2022 走看看