EntityFramework 4.1 EdmMetadata ModelHash

Я пытаюсь развернуть приложение EF 4.1 Code-First от Dev до Test, не позволяя EF «сдуть» всю базу данных.

Я копирую базу данных из Dev в Test, пересобираю приложение и развертываю код. Поскольку EF все еще думает, что ему нужно перестроить БД или что модели данных разные. Как я могу предсказать, какой ModelHash приложение захочет увидеть, когда оно будет развернуто на другом сервере?

Насколько я могу судить, единственная разница между двумя сборками — это конфигурация, которую я использую для их сборки (одна — Test, а другая — Dev).


person RepDetec    schedule 17.05.2011    source источник


Ответы (2)


Если вы хотите, чтобы кто-то другой использовал вашу БД, и теперь вам нужно каждый раз создавать ее заново.

Я установил инициализатор БД = CreateDatabaseIfNotExists

Затем удалите таблицу «EdmMetadata» из БД.

Я не уверен, что это "правильный" способ сделать это. Но это работает для меня.

person Daveo    schedule 18.05.2011

System.Data.Entity.Infrastructure.EdmMetadata.TryGetModelHash(DbContext)

вернет вам хэш-строку модели. Это то, что EF хочет видеть в столбце ModelHash в таблице EdmMetadata.

person Alexey F    schedule 18.11.2011