我正在尝试将现有数据模型从Database First转换为Code First。
背景
当前的解决方案(在我之前设置)使用Database项目来定义模型。然后将其发布到数据库,然后我们从所述数据库更新EDMX模型。
最后,运行几个T4模板以从EDMX模型以及DBContext
生成POCO类。
我想摆脱这种情况,并纯粹转向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" />
更改为:
<add name="MyContext" connectionString="data source=MY-SERVER;initial catalog=MY-DB;integrated security=True;multipleactiveresultsets=True;App=EntityFramework" providerName="System.Data.SqlClient" />
这是我遇到问题的地方
我现在正在尝试创建初始迁移,传递-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。
任何帮助表示感谢。
答案 0 :(得分:0)
只需注释掉InitialCreate.cs的内容 然后在PM中运行
update-database
之后,新迁移将正常工作。