5

Estoy trabajando con Code First Migrations (Entity Framework 4.3) y me gustaría obtener una versión binaria comprimida del modelo actual, para que pueda compararlo manualmente con el último modelo almacenado en la tabla __MigrationHistory (o uno que he almacenado en un archivo de texto).¿Cómo se almacenan los modelos comprimidos en la tabla EF 4.3 Code First Migrations __MigrationHistory?

Existe el método EdmMetadata.TryGetModelHash(), pero está marcado como obsoleto y quiero evitarlo si es posible (por motivos de protección contra el futuro).

¿Cómo haré esto en EF 4.3?

Editar: Desde un poco más la investigación y la información en Pawel's answer He descubierto que este campo ya no almacena un hash sino una representación binaria comprimida del modelo. Es esto lo que intento crear.

Respuesta

8

__MigrationHistory tabla ya no contiene un hash del modelo. En cambio, ahora contiene el modelo en la forma comprimida. Además, verificar si el modelo ha cambiado o no, ya no se basa solo en comparar el hash, ya que las migraciones deben "saber" qué cambió y cómo cambió.

EdmMetadata era una tabla que se estaba utilizando antes de que las Migraciones se integraran a la Entidad Framowork en 4.3/5.0 y no se crearán en bases de datos creadas por EF 4.3+. Aquí también puede encontrar algunos detalles adicionales: http://blog.oneunicorn.com/2012/01/13/ef-4-3-beta-1-what-happened-to-that-edmmetadata-table/

+0

Gracias, justo después de publicar esto me di cuenta de que el campo 'Modelo' en realidad estaba almacenando datos binarios en lugar de un hash, por lo que esto confirma mi sospecha. Sin embargo, todavía no responde la pregunta de cómo crearía * una versión comprimida compatible de mi modelo, aunque +1 para obtener información útil. –

+1

Descomprimir el modelo usando zip/gzip debería darle el archivo edmx. – Pawel

+0

Entonces, ¿cómo podría crear eso? Por lo que sé, no hay archivos 'edmx' involucrados al usar el enfoque Code First? –

Cuestiones relacionadas