Bre*_*een 10 c# entity-framework asp.net-mvc-5
我正在尝试将现有数据模型从Database First转换为Code First.
背景
当前的解决方案(在我之前设置)使用Database项目来定义模型.然后将其发布到数据库,然后我们从所述数据库更新EDMX模型.
最后,运行几个T4模板以从EDMX模型生成POCO类,以及DBContext.
我想摆脱这一点,并纯粹转向Code First迁移方法.
我到目前为止做了什么
我还更改了连接字符串以使用System.Data.SqlClient提供程序.是:
<add name="MyContext" connectionString="metadata=res://Project.Data/Model.MyModel.csdl|res://Project.Data/Model.MyModel.ssdl|res://Project.Data/Model.MyModel.msl;provider=System.Data.SqlClient;provider connection string="data source=MY-SERVER;initial catalog=MY-DB;integrated security=True;multipleactiveresultsets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
Run Code Online (Sandbox Code Playgroud)
变成:
<add name="MyContext" connectionString="data source=MY-SERVER;initial catalog=MY-DB;integrated security=True;multipleactiveresultsets=True;App=EntityFramework" providerName="System.Data.SqlClient" />
Run Code Online (Sandbox Code Playgroud)
这是我遇到问题的地方
我现在正在尝试创建初始迁移,传递-IgnoreChanges标记以便我获得空迁移(考虑到数据库的年龄,我希望将来的迁移基于当前模式,而不是从头开始创建迁移).
当我跑: Add-Migration InitialCreate -IgnoreChanges
我收到此错误:
无法加载指定的元数据资源.
当我跑: Add-Migration InitialCreate -IgnoreChanges -ConnectionString "data source=MY-SERVER;initial catalog=MY-DB;Integrated Security=SSPI;" -ConnectionStringProviderName "System.Data.SqlClient"
我收到此错误:
无法使用标准DbConnection覆盖此上下文的连接,因为原始连接是EntityConnection.
在这里不知所措.看来即使我删除了对EDMX模型的引用,上下文仍然知道它.我想彻底摆脱它,并采用纯粹的Code First.
任何帮助赞赏.
只需注释掉InitialCreate.cs的内容然后在PM中运行
update-database
Run Code Online (Sandbox Code Playgroud)
此后新的迁移将正常工作。
| 归档时间: |
|
| 查看次数: |
2987 次 |
| 最近记录: |