Как разрешить конфликт ProviderManifestToken=8.3.7 и Npgsql ProviderManifestToken=8.1.3?

Я пытаюсь подключиться к своей базе данных PostgreSQL с помощью Entity Framework. К сожалению, после создания модели с использованием EdmGen (или EdmGen2) в моем файле SSDL для ProviderManifestToken установлено значение 8.3.7, тогда как в текущей версии Npgsql (2.0.9) для него установлено значение 8.1.3. Это дает мне исключение при попытке использовать мою модель объекта:

System.Data.MetadataException: указанная схема недействительна. Ошибки: Npgsql.NpgsqlSchema.ssdl(2,52): ошибка 0169: все артефакты SSDL должны быть нацелены на одного и того же поставщика. ProviderManifestToken версии 8.1.3 отличается от версии 8.3.7, которая встречалась ранее.

Есть идеи, как это исправить или сгенерировать модель с помощью ProviderManifestToken eq 8.1.3?

Пожалуйста, не предлагайте коммерческие соединители баз данных, мой бюджет не позволяет: P


person kyrisu    schedule 17.05.2010    source источник
comment
Я что-то упускаю, вот. Почему бы просто не изменить его на правильное значение? Что-то ломается, когда вы это делаете?   -  person Craig Stuntz    schedule 18.05.2010
comment
да. Я получаю: Сведения об исключении: System.Data.MetadataException: указанная схема недействительна. Ошибки: ошибка 0194: все артефакты, загруженные в ItemCollection, должны иметь одинаковую версию. Встречалось несколько версий. Возможно, мне нужно будет изменить некоторые определения схем, но я не знаю, что именно:/   -  person kyrisu    schedule 19.05.2010


Ответы (1)


  • Откройте файл edmx в текстовом редакторе.
  • Найдите атрибут ProviderManifestToken элемента Edmx/Runtime/StorageModels/Schema.
  • Если он установлен на 8.1.3, измените его на 8.3.7, а затем перекомпилируйте все.
person schellack    schedule 16.09.2011