C# 映射到已存在的数据库列
我们有一个使用EntityFramework6.0创建的应用程序,它首先使用代码创建数据库模式。DBA在已经存在的表上创建了一个新的生产列,并希望我们映射到它 查看我看到提到使用C# 映射到已存在的数据库列,c#,entity-framework,C#,Entity Framework,我们有一个使用EntityFramework6.0创建的应用程序,它首先使用代码创建数据库模式。DBA在已经存在的表上创建了一个新的生产列,并希望我们映射到它 查看我看到提到使用忽略,但我们希望字段被映射;我们只是不想创造它 最糟糕的情况是,我们将让DBA将列值复制到一个新的temp列中,首先用传统的方式用代码创建它,然后再将它复制回来。不过,如果可能的话,我们宁愿让代码先处理它。理想情况下,如果该列不存在,它会在dev/test/uat环境中创建该列,但不会在生产环境中删除该列。基于上述评论,
忽略
,但我们希望字段被映射;我们只是不想创造它
最糟糕的情况是,我们将让DBA将列值复制到一个新的temp列中,首先用传统的方式用代码创建它,然后再将它复制回来。不过,如果可能的话,我们宁愿让代码先处理它。理想情况下,如果该列不存在,它会在dev/test/uat环境中创建该列,但不会在生产环境中删除该列。基于上述评论,我知道您可以做些什么来解决此问题:
添加迁移
。这将生成一个手动迁移文件,其中将包括它检测到的数据库需要存在的一些更改Up
和Down
方法中的所有内容。只需保留签名和两个签名的空方法MigrateDatabaseToLatestVersion
初始值设定项的情况下运行应用程序。在那之后你不应该看到任何错误我以前也遇到过同样的问题,这总能解决它。我不知道微软为什么要这样做,但我想这就是cookie崩溃的原因。我遇到了同样的问题-在空数据库(或尚未创建数据库)上添加迁移后,EF通知我模型中有一些更改,所以我应该运行添加迁移 无法更新数据库以匹配当前模型,因为存在挂起的更改,并且禁用了自动迁移 当我运行“添加迁移”时,新的迁移文件只添加一些已经存在的列,所以下一次更新数据库失败,因为我试图添加已经存在的列 对我有帮助的是:
Up
和Down
方法的内容(或仅删除导致问题的行)您正在使用迁移吗?是的,我们正在使用MigratedatabasetolatesVersion初始值设定项。酷。我假设你每次运行应用程序时都会看到一个错误,说它无法创建列,因为它已经存在?是的,每次我们尝试运行应用程序时都会发生这种情况。获取一个错误,指示它无法创建列,因为它已经存在。听起来很好。我会尽快试一试,让你知道情况如何。