Подтвердить что ты не робот

Entity Framework 6 с Npgsql

Я хочу использовать 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>
4b9b3361

Ответ 1

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

Install-Package Npgsql.EF6 -Pre

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

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

install-package Npgsql.EntityFramework -pre