EntityFramework 4.1 Edm元数据模型哈希

Posted

技术标签:

【中文标题】EntityFramework 4.1 Edm元数据模型哈希【英文标题】:EntityFramework 4.1 EdmMetadata ModelHash 【发布时间】:2011-05-17 23:20:18 【问题描述】:

我正在尝试将 EF 4.1 Code-First 应用程序从 Dev 部署到 Test,而不会让 EF “吹走”整个数据库。

我将数据库从 Dev 复制到 Test,重建应用程序并部署代码。因为 EF 仍然认为它需要重建数据库或者数据模型不同。当应用程序部署到不同的服务器时,如何预测应用程序希望查看哪个 ModelHash?

据我所知,两个构建之间的唯一区别是我用来构建它们的配置(一个是测试,另一个是开发)。

【问题讨论】:

【参考方案1】:

如果您希望其他人使用您的数据库并且现在每次都必须重新创建它。

我设置我的 DB Initializer = CreateDatabaseIfNotExists

然后从数据库中删除“EdmMetadata”表。

我不确定这是否是“正确”的做法。但它对我有用。

【讨论】:

【参考方案2】:
System.Data.Entity.Infrastructure.EdmMetadata.TryGetModelHash(DbContext)

将返回模型的哈希字符串。 这就是 EF 希望在 EdmMetadata 表的 ModelHash 列中看到的内容。

【讨论】:

以上是关于EntityFramework 4.1 Edm元数据模型哈希的主要内容,如果未能解决你的问题,请参考以下文章

EntityFramework 4.1 DbContext 选择添加带有附加字符的 CAST 列

如何开始使用 EntityFramework 4.1(或当前的 4.3)

找不到 EntityType 错误的 EF 映射和元数​​据信息

如何使用 EntityFramework 4.1 CodeFirst 防止十进制值在保存时被截断为 2 位? [复制]

microsoft entity framework 包含哪些功能

Entity Framework 4.1 - 非键列之间的关系