在新的WebAPI項目中(嘗試使用ASP.NET Core 1.0),我們需要使用它們提供的ADO.NET提供程序查詢遺留數據庫「Pervasive SQL」。但是他們沒有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-*"
}
}
}
運行 「DNU構建」 結果到以下異常
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? 或者它是否可以從ASP.NET Core 1.0中引用.NET Framework 3.5(或2.0)?
我只需要這個確認,所以我們不能使用我們現有的ADO.NET提供程序,導致我們現在必須退後一步到ASP.NET MVC 5,直到他們重定向.NET 4.5框架。或者你看到另一個解決方案能夠使用Entity Framework ..或者使用NHibernate,但這可能比現在降級更糟糕。 – rfcdejong
@rfcdejong:EntityFramework 6.x應該與4.5.x,NHinerbate dunno一起工作。 Multitargeting僅適用於圖書館/包裝 – Tseng
Pervasive沒有編寫EF6提供商,總是落後多年。就像他們今年上個月的最新提供商似乎正在引用.NET Framework v2.0一樣。 – rfcdejong