Entity Framework 4.3 多应用数据库迁移策略

Posted

技术标签:

【中文标题】Entity Framework 4.3 多应用数据库迁移策略【英文标题】:Entity Framework 4.3 Migration Strategy for Database Used by Multiple Applications 【发布时间】:2012-02-29 15:26:42 【问题描述】:

我一直在开发一个 ASP.NET Entity Framework 4.3 Code-First 应用程序,该应用程序管理它所关心的数据库部分的模型。由于该数据库将被多个其他应用程序使用(有些不使用 ef 因此无法导入模型),因此想法是使用我的应用程序创建基础数据库。在此之后,DBA 可以根据需要添加我的应用程序未使用的其他字段和表。

在我的应用程序中对模型进行更改时会出现问题。我们的想法是使用 EF 4.3 的新迁移功能创建脚本(-script 功能),同时指向我们的本地计算机开发数据库(SQLCompact),然后将其传递给 DBA 以迁移实际的开发数据库(MS SQL 2008 ) 所有其他应用程序都使用。

这已经引起了问题,因为当我开始测试(指向 SQL 服务器)时,应用程序无法读取任何外键关系,从而给出这些列不存在的错误。我想知道这是否是由于 SQL Compact 和 SQL Server(EF 到 SQL)的翻译差异引起的,还是其他一些问题。

对于这种类型的 1-DB 多应用程序环境,我是否应该为 EF 迁移而烦恼?我是否需要直接针对 SQL Server 运行所有迁移?我应该使用完全不同的变更策略吗?任何帮助或指导将不胜感激。

【问题讨论】:

【参考方案1】:

好吧,您可以尝试在本地安装 SQL Server Express 而不是使用 compact。这应该消除紧凑型和标准之间可能存在的任何差异。

【讨论】:

现在进行设置,有望解决不同 SQL 命令或命名约定转换的问题。您认为这是进行变革管理的正确方式吗? 意识到不同的 SQL 版本不是问题,除了一些小的类型更改,而且无论如何 SQL Express 都无法解决。

以上是关于Entity Framework 4.3 多应用数据库迁移策略的主要内容,如果未能解决你的问题,请参考以下文章

Entity Framework 4.3 - TPH 映射和迁移错误

在 Entity Framework 4.3 中增量播种数据的最佳方法

将 SQL Server Compact 4.0.0.1 与 Entity Framework 4.3 一起使用

使用 Entity Framework Migrations 4.3 时如何显式命名数据库

Entity Framework Core 性能优化

Entity Framework Core 性能优化