我使用Code First Entity Framework來完成我所有的數據庫檢索。不幸的是,在我工作的地方,他們強制要求使用存儲過程來完成任何更新/插入/刪除操作。使用存儲過程混合實體框架 - 連接問題
我開始通過執行以下操作:
public partial class MyContext
{
public void AddStatus(int id, string status)
{
var connection = (SqlConnection)this.Database.Connection;
if(connection.State != ConnectionState.Open)
connection.Open();
SqlCommand cmd = connection.CreateCommand();
// ...
cmd.ExecuteNonQuery();
}
}
這一段時間工作的罰款,直到我碰到地方,我需要這個代碼後直接檢索從我的數據庫中的數據,使用相同的上下文情景傳來:
MyContext db = new MyContext();
db.AddStatus(1, "Open");
var item = db.Items.Find(1);
我得到了以下錯誤:
ArgumentException - EntityConnection can only be constructed with a closed DbConnection.
有什麼辦法可以混合這樣的代碼,還是我必須創建另一個連接到我的數據庫?如果我創建一個新的連接,如分佈式事務,如果我需要一個事務範圍,我會遇到問題嗎?
爲什麼不只是使用內置的proc映射機制? – BNL
什麼是proc映射?它在Code First中工作嗎?示例請 – Dismissile