c# - 映射到已存在的数据库列

标签 c# entity-framework

我们有一个使用 Entity Framework 6.0 创建的应用程序,并使用 Code First 来创建数据库架构。 DBA 在生产环境中在现有表上创建了一个新列,并希望我们映射到它。

查看 Entity Framework 4.1 code first mapping to already existing database table我看到提到使用Ignore,但我们希望映射该字段;我们只是不想创建它。

最坏的情况是,我们将让 DBA 将列值复制到新的临时列,首先以传统方式使用代码创建它,然后将其复制回来。不过,如果可能的话,我们宁愿让代码首先处理它。理想情况下,如果该列不存在,它将在 dev/test/uat 环境中创建该列,但不会在生产中删除它。

最佳答案

根据上面的评论,我知道你可以采取什么措施来解决这个问题:

  1. 确保您的 POCO 具有已添加到表格中的列

  2. 转到 NuGet 的程序包管理器控制台并运行 add-migration。这将生成一个手动迁移文件,其中包括它检测到需要存在的数据库的一些更改。

  3. 删除 UpDown 方法中的所有内容。只需为它们保留签名和空方法即可。

  4. 最后,在启用 MigrateDatabaseToLatestVersion 初始值设定项的情况下运行您的应用。此后您应该不会看到任何错误。

我以前也遇到过同样的问题,每次都解决了。我不知道为什么微软要这样工作,但我猜这就是 cookie 崩溃的方式。

关于c# - 映射到已存在的数据库列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27448007/

相关文章:

c# - 将密码添加到 Xamarin 表单中的 Sqlite 文件

c# - 如何在 Visual Studio 的 WPF Python 项目中手动创建 App.xaml 文件?

C# Switch 语句中的大小写敏感性

c# - 如何使用 LINQ 仅返回列的第一个字符在某个范围内的行?

.net - EF Profiler - 它是如何工作的?

c# - Entity Framework 6,预加载嵌套关系返回空集合

c# - 了解获取和设置访问器

c# - 无法先从模型代码中删除 FK

c# - 如何在 Entity Framework 查询中将 DateTime 转换为 TimeSpan

c# - 'System.Data.Entity.Migrations.DbMigrationsConfiguration` 1' 的类型初始值设定项抛出异常