.NET
Entity Framework ORM
▌背景
前幾天把專案的Entity Framework升級到6.0.1後,原本run-time從其他dll注入的Connection雖然可以編譯成功,也可以建立Entity的連線,但是下Linq查詢時馬上throw 一個必須提供正確的Provider名稱的Exception; 明明已經提供了System.Data.SqlClient的Provider name ( lol )
|
▌解決方式
最後,我把注入的Connection的來源專案,也另外升級到6.0.1 就成功了。
(應該版本不同,造成EF6無法辨識舊版的Connection)
(應該版本不同,造成EF6無法辨識舊版的Connection)
另外新版的Entity Framework在建立Entity後,只會預設有一個constructor:
[你的Entity名稱].Context.cs
public XXXEntities() : base("name=XXXEntities")
{}
所以如果要run-time丟入一個EntityConnection,必須手動加入繼承 DbContext 另外一個overloading constructor :
[你的Entity名稱].Context.cs
public XXXEntities() : base("name=XXXEntities")
{}
所以如果要run-time丟入一個EntityConnection,必須手動加入繼承 DbContext 另外一個overloading constructor :
public XXXEntities(DbConnection existingConnection, bool contextOwnsConnection)
contextOwnsConnection
沒有留言:
張貼留言