asp.net-mvc – 模型支持DB上下文已更改;考虑代码优先迁移
是什么原因导致这种情况?我真的只是创建了一个全新的数据库,并没有改变任何东西,但是每次尝试从控制器访问模型时,都会抛出一个这样的结果。 编辑 这与我正尝试用两个独立实体共享一个连接字符串(即一个数据库)的事实有关。 解决方法
EF codefirst将首先查看您的DbContext,并发现在其中声明的所有实体集合(以及通过导航属性查看与这些实体相关的实体)。然后,它会查看您给它一个连接字符串的数据库,并确保所有表格与模型中实体的结构相匹配。如果它们不匹配,那么它不能读/写这些表。无论何时创建新数据库,或者如果您更改了实体类声明,例如添加属性或更改数据类型,则会检测到模型和数据库不同步。默认情况下,它将简单地给你上面的错误。通常在开发过程中,您想要发生的是数据库被重新创建(擦除任何数据),并从您的新模型结构再次生成。
为此,请参阅本文中的“RecreateDatabaseIfModelChanges功能”: 您基本上需要提供一个继承自RecreateDatabaseIfModelChanges的数据库初始化程序。 一旦你去生产,不再想要丢失数据,那么你会删除这个初始化程序,而是使用数据库迁移,这样可以部署更改而不会丢失数据。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 如何将对象传递给VIewModel的构造函数? AS
- asp.net-mvc – 直接下载链接到ASP.NET MVC 5 for VS 2012
- asp.net-mvc – VS2013不编译ASP.NET MVC5视图
- asp.net – 在设计器视图中打开项目时,Visual Studio崩溃
- 使用ASP.Net MVC将图像上传到SQL Server 2005?
- asp.net-mvc – Razor视图没有布局
- ASP.NET中XML转JSON的方法实例
- asp.net – “线程被中止了什么”. ‘SNIReadSync(SNI_Conn
- asp.net-mvc – 当Bundling EnableOptimizations为true时,F
- asp.net – .Net平台有Django还是Rails?