问题标签 [entity-framework-migrations]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 分支时是否有使用 EF 4.3 迁移的干净方法?
我正在阅读 EF Migrations 并开始使用它。
我使用 Git 进行源代码控制,每次开始开发新功能时,我都会创建一个分支。这样做的原因是,如果我需要快速跳转到不同的功能,或者进行需要推出的重要错误修复,我可以更改分支并继续工作。
目前我有我的应用程序设置,因此如果我不在生产环境中(web.config appsetting),它会破坏数据库并在数据模型发生更改时重新设置它(代码优先)。我认为迁移会很好,因为我不必在最轻微的模型更改上完全删除我的数据。
不幸的是,我看到一些迹象表明它不像我希望的那样对版本控制友好。例如,如果我向我的数据模型添加一个新列,更新数据库,然后决定恢复我的更改,EF 仍然知道模型更改,因为它将它们存储在数据库本身中。
似乎没有干净的方法告诉它在分支第一次发生时降级数据库版本,然后迁移到我决定在没有大量记忆和手动跟踪的情况下工作的分支上的数据库位置。
有没有人有关于如何在具有版本控制的非平凡开发场景中利用迁移的策略?
c# - C# 代码优先迁移,向上/向下?
开始在包管理器控制台中使用 add-migration 命令为我的模型生成迁移。我的问题是,上下方法。我假设 down 方法的目的是删除所有依赖项并删除表(如果它们已经在数据库中)?另外,down 方法会在 up 方法之前执行吗?up 方法则相反,创建/更新表/索引等?
有时当我使用它时,down 方法会得到很多创建表然后被删除?最近它创建和删除了很多表,并且在 up 方法中发生了几乎相同的事情。为什么?
entity-framework - 实体框架代码优先迁移 - 我可以针对以前的迁移
我正在使用带有 CCNet 的 migration.exe 在部署时更新数据库,我想知道如果我决定回滚已发布的版本,是否有办法回滚该更改。
我知道有一种方法可以定位原始版本:$InitialDatabase,还有一种方法可以定位命名迁移 TargetMigration:“AddPostAbstract”。但是迁移目标的名称会在每次部署时发生变化。
有没有办法针对以前的迁移,不管它的名字是什么?
c# - Entity Framework 4.3 现有数据库的迁移错误
我有一个使用 EF 4.1 创建的现有数据库。然后我安装了 EF 4.3 并启用了迁移。现在我更改了一个实体的名称。Up() 方法中的第一行代码是 DropForeignKey()。如果我使用 Update-Database 运行迁移,则会引发异常“无法删除约束”。
问题是,在 ef 4.3 中,外键命名约定发生了变化。在 4.3 中,它们看起来像 4.1 中的“FK_Table_Table_Column_ID”,就像“Table_Table”。
我该如何改变呢?
sql-server-2000 - EF 4.3.1 迁移 - 从字符串转换日期和/或时间时转换失败
当我尝试通过 EF 迁移对数据库进行版本控制时,出现错误“从字符串转换日期和/或时间时转换失败”。问题是我的 MS Sql Server 版本(具有高级服务的 Microsoft SQL Server Express Edition(64-少量))。这是一个错误吗?有解决办法吗?
编辑
没关系。这与 EntityFramework 无关。如果我的 SQL Server 数据库配置为向后兼容 SQL Server 2000,它将不接受该日期格式。我想除非我可以让 EF 以另一种格式输出它的日期字符串(或者让 SQL Server 向后兼容到 2000 并且仍然理解 EF 日期字符串),否则我将无法在我的数据库中使用 EF 迁移: -(。请让我知道是否有人想出了一种将 EF 与兼容级别 SQL Server 2000 的数据库一起使用的方法。
entity-framework - 无法在实体框架中生成显式迁移
我正在添加一个新的迁移,但此消息显示:
无法生成显式迁移,因为以下显式迁移处于挂起状态:[201203170856167_left]。在尝试生成新的显式迁移之前应用挂起的显式迁移。
谁能帮我?
.net - EF 4.3.1 迁移异常 - AlterColumn defaultValueSql 为不同的表创建相同的默认约束名称
我有一个使用 OOB 数据库初始化程序创建的数据库,并且我将 Code First 与 EF 4.3.1 一起使用。
我想利用 Add-Migration cmdlet 上新的“IgnoreChanges”标志,这样我就可以更改我的一些列并添加默认 SQL 值。本质上,我的一些实体有一个名为 DateLastUpdated 的列,我想将 DEFAULT 设置为 sql 表达式 GETDATE()。
我使用“add-migration InitialMigration -ignorechanges”创建了 InitialMigration,然后将以下内容添加到 Up() 和 Down():
然后我尝试运行“Update-Database -verbose”,但我看到它正在尝试在数据库上创建相同命名的默认约束,并且 SQL 抛出异常:
看起来 EF 正在创建 DEFAULT 约束,方法是在列名后附加“DF_”,但不使用表名,以使其对表唯一。这是一个已知的错误,还是我在这里做错了什么?
c# - dbmigrator 未检测到迁移
我有以下内容:
迁移器未检测到迁移..
有什么建议么?
entity-framework - 将复杂类型转换为实体而不丢失数据
我们一直在使用CreditCardTransaction
与我们的采购订单相关联的复杂类型。它真的应该是它自己的实体,我现在正试图解决这个问题。
您将如何编写迁移:
进入这个实体:
这就是为我生成的。我可以轻松地将原始表中的数据移动到另一个表中吗?
sql-server - 表被自动迁移删除
我正在使用 EF 4.3.1 并启用了与 sql server 2008 一起运行的自动迁移。我遇到了一个奇怪的问题,我的一个表被删除 - 我什至将 AutomaticMigrationDataLossAllowed 设置为 false。我的两张表如下:
ArtistId 上有一个外键。我有两个表都填充了数据。每隔一段时间,我的应用程序就会因为外键错误而无法运行。我检查了数据库,我的 Artist 表完全消失了。我查看了我的 Samples 表,ArtistId 列被删除并替换为以前不存在的“艺术家”列 (nvarchar)。我知道我没有删除数据,因为我的存储库中甚至没有删除方法。如果我从 Samples 表中删除所有数据,则会出现 Artist 表并且我的应用程序会运行。有没有人遇到过这个问题或知道为什么我的设置可能会导致这种情况发生?提前致谢。