博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于MVC使用Code-First代码优先来先建实体类中间添加新字段不需要重新建立数据库的方法...
阅读量:6680 次
发布时间:2019-06-25

本文共 985 字,大约阅读时间需要 3 分钟。

我们拿“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);

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

转载地址:http://hynao.baihongyu.com/

你可能感兴趣的文章
第十三周项目2-形状类族的中的纯虚函数
查看>>
组织炎症水平高的RA患者接受TNF拮抗剂治疗的效果更好
查看>>
[洛谷P3709]大爷的字符串题
查看>>
通过映射关系 动态转义为统一格式的数据 (支持 JSON 和 XML )
查看>>
ajax跨域解决方案(服务端仅限java)
查看>>
Shell 文本处理三剑客之grep
查看>>
Node实现简单的注册时后端的MVC模型架构
查看>>
git使用笔记---简单入门
查看>>
在Xcode中使用pch文件
查看>>
[CF983E]NN country
查看>>
POJ 3533 Light Switching Game(三维Nim积)题解
查看>>
GPGPU报告
查看>>
Android测试分析3
查看>>
mysql导入导出命令
查看>>
软件体系结构C2风格
查看>>
双外边距浮动bug;3像素文本偏移bug;IE6以下相对定位中的绝对定位bug
查看>>
【实习记】2014-08-23网络安全XSS与CSRF总结
查看>>
如何写出让人看了恶心的代码
查看>>
http状态码
查看>>
好记性不如烂笔杆-android学习笔记<十五> GridView简单用法
查看>>