zoukankan      html  css  js  c++  java
  • 关于MVC使用CodeFirst代码优先来先建实体类中间添加新字段不需要重新建立数据库的方法

    我们拿“MusicStore”这个示例来说 ,我们可以先直接在Artists表中新增CreateTime字段,然后在项目的Artist类中也新增CreateTime字段:public virtual DateTime? CreateTime { get; set; }

    这时如果我们运行程序,因为Artist类中的代码有改动,程序会出现如下错误:

    --------------------------------------------------------------------------------

    The model backing the 'MusicStoreDB' context has changed since the database was created.

     Either manually delete/update the database, or call Database.SetInitializer with an IDatabaseInitializer instance. For example,

     the DropCreateDatabaseIfModelChanges strategy will automatically delete and recreate the database, and optionally seed it with new data.

    用户 'sa' 登录失败。

    说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

    异常详细信息: System.Data.SqlClient.SqlException: 用户 'sa' 登录失败。

    ---------------------------------------------------------------------------------------

    说数据上下文在数据库创建后发生了改变。

    这时如果我们可以在Global的Application_Start()中取消数据上下文的检查,即将数据初始化设为Null,如:

    Database.SetInitializer<MusicStoreDB>(null);

    则可实现同时修改表和类中字段,而数据不动。

    学习交流群:364976091
  • 相关阅读:
    CVE-2010-3333
    CVE-2010-2883
    谷歌不兼容showModalDialog()方法出现对话窗口解决方法
    asp.net中邮箱发送
    在c#中access2003和access2007连接字符串
    MVC连接Sql Server数据库出现的小问题
    使用360浏览器访问字体逆时针旋转90度的问题
    bootstrap与360浏览器不兼容问题
    委托的使用方法
    某集网将我的信息给了谁?还是不良卖家不想卖东西
  • 原文地址:https://www.cnblogs.com/firstcsharp/p/2886780.html
Copyright © 2011-2022 走看看