В новом проекте WebAPI (с использованием ASP.NET Core 1.0) у нас есть требование запросить унаследованную базу данных «Pervasive SQL» с помощью поставщика ADO.NET, который они предоставляют. Однако у них нет провайдера EF6, поэтому мы застреваем с помощью EF5.Требуется ли dnx46 по крайней мере .NET Framework 4.5.1?
Пропуск платформы Entity Framework и использование ADO.NET PSqlConnection напрямую требует «System.Data 2.0.0.0». Это заставляет меня думать, что поставщик скомпилирован на .NET Framework 2.0 (или 3.5).
project.json
"frameworks": {
"net451": { },
"dnx46": {
"dependencies": {
"EntityFramework": "5.0.0",
"Pervasive.Data.SQLClient.Entity": "1.0.0-*",
"Pervasive.Data.SqlClient": "1.0.0-*",
"Pervasive.Data.Common": "1.0.0-*"
}
}
}
Запуск "ДНУ сборки" результаты в следующем за исключением
xx\..\Controllers\ValuesController.cs(22,18): DNX,Version=v4.6 error CS0012: The type 'DbConnection' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
Build failed.
0 Warning(s)
2 Error(s)
Реальный вопрос: ли dnx46 требуется, по крайней мере .NET Framework 4.5.1? Или как-то возможно ссылаться на .NET Framework 3.5 (или 2.0) из ASP.NET Core 1.0?
Мне просто нужно было это подтверждение, поэтому мы не можем использовать существующий поставщик ADO.NET у нас есть, в результате чего нам придется сделать шаг назад к ASP.NET MVC 5, пока они не перенастроят .NET 4.5 Фреймворк. Или вы видите другое решение, чтобы иметь возможность использовать Entity Framework .. или использовать NHibernate, но это может быть даже хуже, чем уйти в отставку. – rfcdejong
@rfcdejong: EntityFramework 6.x должен работать с 4.5.x, NHinerbate dunno. Мультитаргетинг полезен только для библиотек/пакетов. – Tseng
Pervasive не писал провайдера EF6, который всегда был годами. Как и их последний провайдер в прошлом месяце в этом году, ссылка на .NET Framework v2.0 кажется. – rfcdejong