How are the compressed models stored in the EF 4.3 Code First Migrations __MigrationHistory table created?

不想你离开。 提交于 2019-11-30 05:48:50

问题


I'm working with Code First Migrations (Entity Framework 4.3) and I'd like to get a compressed binary version of the current model, so that I can manually compare it to the latest model stored in the __MigrationHistory table (or to one I have stored in a text file).

There is the EdmMetadata.TryGetModelHash() method, but that's marked as deprecated and I want to avoid it if possible (for future-proofing reasons).

How would I do this under EF 4.3?

Edit: From a bit more investigation and the info in Pawel's answer I've figured out that this field no longer stores a hash but a compressed binary representation of the model. It's this I'm trying to create.


回答1:


__MigrationHistory table no longer contains a hash of the model. Instead it now contains the model in the compressed form. Also, verifying whether the model changed or not no longer relies on just comparing the hash since Migrations need to "know" what changed and how it did change.

EdmMetadata was a table that was being used before Migrations were integrated to Entity Framowork in 4.3/5.0 and won't be created in databases created by EF 4.3+. You can find some additional details here as well: http://blog.oneunicorn.com/2012/01/13/ef-4-3-beta-1-what-happened-to-that-edmmetadata-table/



来源:https://stackoverflow.com/questions/10683726/how-are-the-compressed-models-stored-in-the-ef-4-3-code-first-migrations-migra

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!