如何创建存储在EF 4.3 Code First Migrations __MigrationHistory表中的压缩模型?

Mar*_*ell 5 ef-code-first ef-migrations entity-framework-4.3

我正在使用Code First Migrations(实体框架4.3),我想获得当前模型的压缩二进制版本,以便我可以手动将其与存储在__MigrationHistory表中的最新模型(或者我已经存在的模型)进行比较存储在文本文件中).

EdmMetadata.TryGetModelHash()方法,但被标记为已弃用,如果可能,我想避免它(出于未来的原因).

我如何在EF 4.3下执行此操作?

编辑:从更多的调查和Pawel的答案中的信息我发现,这个字段不再存储散列,而是模型的压缩二进制表示.这就是我想要创造的.

Paw*_*wel 8

__MigrationHistory表不再包含模型的哈希值.相反,它现在包含压缩形式的模型.此外,验证模型是否更改不再仅仅依赖于比较哈希值,因为迁移需要"知道"更改的内容以及更改的内容.

EdmMetadata是一个在将迁移集成到4.3/5.0中的Entity Framowork之前使用的表,并且不会在EF 4.3+创建的数据库中创建.您还可以在此处找到一些其他详细信息:http://blog.oneunicorn.com/2012/01/13/ef-4-3-beta-1-what-happened-to-that-edmmetadata-table/

  • 实际上edmx在使用Code First时只涉及到你没有看到它.您将使用EdmxWriter.WriteEdmx:http://msdn.microsoft.com/en-us/library/system.data.entity.infrastructure.edmxwriter(v=vs.103).aspx (2认同)