问题标签 [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.

0 投票
9 回答
12470 浏览

entity-framework-4 - EF 4.3 在一个数据库中具有多个 DbContext 的自动迁移

我正在尝试将 EF 4.3 迁移与多个代码优先 DbContext 一起使用。我的应用程序分为几个插件,它们可能有自己的 DbContext 关于他们的域。应用程序应该使用一个单一的 sql 数据库。

当我尝试自动迁移空数据库中的上下文时,这只对第一个上下文成功。每个其他上下文都需要将 AutomaticMigrationDataLossAllowed-Property 设置为 true,然后尝试删除前一个的表。

所以我的问题是:

  • 我怎么能告诉迁移配置只是照顾在其相应上下文中定义的表而让所有其他人不理会?
  • 在单个数据库中通过自动迁移处理多个 DbContext 的正确工作流程是什么?

谢谢!

0 投票
0 回答
432 浏览

c# - 是否可以仅使用带有 EF Code First 的数据注释来创建双向关系?

使用 Entity Framework Code First 和 Entity Framework Migrations (4.3.0-beta1),我想创建一个这样的数据库结构:

数据库图

如果我这样定义模型:

并且我添加了一个迁移,生成了以下迁移代码:

这会导致正确的结构。

我想知道是否可以在不使用 fluent API 的情况下实现此结果。

如果我省略了流畅的 API 说明,如下所示:

然后在 Cities 表中创建两个附加字段:

但是流畅的 API 指令似乎没有添加比使用 Code First 约定已经发现的更多信息。

我想知道是否有更好的方法来创建这种关系,尤其是不需要流式 API 的方法。

代码片段可作为gist获得。

0 投票
2 回答
1704 浏览

entity-framework - EF 4.3 迁移抛出“无法打开 configSource 文件”

我正在尝试使用 EF 4.3 迁移功能。我的 ASP.NET MVC 项目将连接字符串存储在外部文件中:

所有运行时过程(包括自动迁移)都可以正常工作。但是,没有连接到数据库的 powershell commandlet 能够找到外部文件。它抛出“无法打开 configSource 文件”异常。我试图将 .config 文件放在不同的地方,以及更改配置的外部文件位置无济于事。有没有可用的解决方法?

更新:我发现 EF 创建了一个临时 AppDomain,其配置文件位于 temp 目录中。因此,目前唯一的解决方法似乎是将外部配置放在同一个临时目录中。还有其他建议吗?

0 投票
3 回答
9132 浏览

entity-framework-4 - 如何在 EntityFramework 4.3 中为现有数据库创建迁移?

所以我想开始 EntityFramework 4.3 迁移。我想知道我是否可以将现有数据库转换为启用迁移的数据库,并让 EF 假定只有从那时起的更改才应被视为迁移。

0 投票
2 回答
1290 浏览

sql - 自动运行 ELMAH 数据库脚本

我想在我的 ASP.net MVC 3 项目中使用 ELMAH 和 sql server,以及 EF 4.3。

有没有办法让创建 elmah 表的 sql 脚本自动运行?

我猜 ef 迁移可能会完成这项工作,但我还没有太多使用它们。

我的目标是找到一个解决方案,您可以在其中签出解决方案并直接运行它(到本地 sqlexpress 或部署时完整的 sql server)并让它工作,而无需手动运行各种帮助 sql 脚本

0 投票
3 回答
5547 浏览

entity-framework - 使用 EF 4.3 运行更新数据库时出错

我将一个项目升级到 Entity Framework 4.3 并在项目上启用了迁移。

但是,在运行 Update-Database 命令时出现此错误:

无法构建下一次迁移,因为目标数据库是使用早于 EF 4.3 的 Code First 版本创建的,并且不包含迁移历史记录表。要开始对该数据库使用迁移,请确保当前模型与目标数据库兼容并执行迁移更新过程。(在 Visual Studio 中,您可以使用包管理器控制台中的 Update-Database 命令来执行迁移更新过程)。

基本上,它告诉我运行给我错误的相同命令(更新数据库)。

有任何想法吗?


不完全是一种“有趣”的方式,但我让应用程序创建一个新数据库,该数据库创建一个名为“__MigrationHistory”的系统表。然后我运行以下脚本在我的旧数据库上创建该表。我还创建了一个脚本,将新数据库中存在的一行复制到旧数据库中。

如果来自 Microsoft 或社区的人知道执行此操作的更有效方法,请在此处发布!


0 投票
3 回答
15156 浏览

.net - 实体框架 4.3 在应用程序启动时运行迁移

在从 EF 4.3 开始的应用程序中执行所有必需的数据库迁移的最佳方法是什么?

0 投票
3 回答
1322 浏览

.net - 实体框架 4.3:配置文件分离时的“更新数据库”

移至 ef 4.3

web.config有以下设置:

在包管理器控制台中执行

并得到以下错误:

该错误是可以理解的:它尝试从工作目录打开connectionStrings.config文件,该工作目录不是connectionStrings.config文件所在的根项目目录。

如果要移动到 web.config 的 connectionStrings.config 和 appSettings.config 内容都像魅力一样工作。

它是一个错误,它可以以某种方式解决吗?

0 投票
1 回答
600 浏览

entity-framework-migrations - 种子数据时设置工作目录

我正在尝试使用 EF 4.3 迁移插入一些示例数据(种子数据)。

问题是我想从 xml 文件中读取数据。但是当我运行Update-Databasecmdlet 时,我得到了类似 Could not find a part of the path 'C:\SampleData\'.

当我Update-Database从我的 powershell 控制台运行时,是否有将工作目录设置为当前项目文件夹。

提前致谢。

0 投票
1 回答
277 浏览

c# - 如何修改其他程序集中已映射实体的映射?

我想为 EF 中的实体自定义映射

例如,我有一个实体:

它已经在常用的 EF 中的 OnModelCreating() 中添加了映射。如果我在 2 个单独的程序集中有 2 个函数,请调用 AssemblyA.dll 和 AssemblyB.dll,它们由 MEF 框架动态加载。

AssemblyA.dll 只需要 ColA 并且必须为 AssemblyB.dll 删除 ColB,反之亦然,因此我需要为这 2 个服务定义 2 个新映射类,它将根据其程序集动态运行以删除列(AssemblyA 将忽略 ColB,和 AssemblyB 忽略 ColA)。我不想修改当前 EF 的代码,因为它已经在生产中。每个程序集的所有更改都应在其自身中。

EF 支持我们这样做吗?或者你能给我一个方向。