Entity Framework 6 с Npgsql

12

Я хочу использовать Entity Framework 6 с PostgreSQL в проекте ASP.NET MVC 4. Я получил Entity Framework 6.0.2 + Npgsql 2.0.14.3, но я получаю ошибку. Как это исправить?

Ошибка:

Исключение типа 'System.InvalidOperationException' произошло в mscorlib.dll, но не было обработано в коде пользователя

Дополнительная информация: член "Экземпляр" типа поставщика Entity Framework "Npgsql.NpgsqlServices, Npgsql, Version = 2.0.14.3, Culture = neutral, PublicKeyToken = 5d8b90d52f46fda7" не возвратил объект, который наследуется от "System.Data".Entity.Core.Common.DbProviderServices. Поставщики Entity Framework должны наследовать от этого класса, а член "Экземпляр" должен вернуть экземпляр singleton поставщика. Это может быть связано с тем, что провайдер не поддерживает Entity Framework 6 или новее; см. http://go.microsoft.com/fwlink/?LinkId=260882 для получения дополнительной информации.

Web.config

<system.data>
  <DbProviderFactories>
    <add name="Npgsql Data Provider"
        invariant="Npgsql"
        description="Data Provider for PostgreSQL"
        type="Npgsql.NpgsqlFactory, Npgsql" />
  </DbProviderFactories>
</system.data>
<connectionStrings>
  <add name="DatabaseContext" connectionString="Server=localhost;port=5432;Database=main;User Id=postgres;Password=password;" providerName="Npgsql" />
</connectionStrings>
<entityFramework>
  <providers>
    <provider invariantName="Npgsql" type="Npgsql.NpgsqlServices, Npgsql" />
  </providers>
</entityFramework>
  • 0
    Я просто создал ответ на этот вопрос в другом вопросе. Пожалуйста, посмотрите на это: stackoverflow.com/a/21839153/246097
Теги:
asp.net-mvc
asp.net-mvc-4

1 ответ

22
Лучший ответ

Мне нужно было установить Npgsql следующим образом:

Install-Package Npgsql.EF6 -Pre

Он устанавливает другую версию, которая работает.

UPDATE: Я обнаружил, что для более новой бета-версии вы можете написать

install-package Npgsql.EntityFramework -pre

  • 0
    +1 - Понятия не имею, как вы это выяснили, но вы сэкономили мне массу времени, выполнив ответ. Спасибо ;-)
  • 0
    Я просто добавил еще несколько комментариев о необходимости версии Npgsql 2.1 для получения поддержки EF 6, а также ссылки на NpgsqlEntityFramework. Я надеюсь, что эти направления помогут новым пользователям ускорить процесс. Спасибо за головы!
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню