我有我的資源庫對象的一個調用下面的方法WCF服務在數據庫中創建一個新的銷售對象實體框架和WCF(返回附加到上下文實體)
public static Sale New(Sale sale)
{
using (var ctx = new DBcontext())
{
ctx.Sales.AddObject(sale);
ctx.SaveChanges();
return sale;
}
}
的WCF方法調用這看起來像這樣
public Sale SaleNew(Sale sale)
{
return SaleRepository.New(sale);
}
當我把這種從客戶端應用程序,我得到以下錯誤
「基礎connectio n已關閉:連接意外關閉。「
如果我通過所有的代碼似乎運行良好,並將記錄插入到數據庫中。如果我調用SaveChanges後,以下行添加到我的倉庫方法,它工作正常
ctx.Detach(sale);
是異常的發生,因爲我只要方法返回處置語境?在這種方式下使用實體環境是不好的做法,即立即處置它?我只是這樣做,因爲它的SOA和幾乎無狀態,所以我所有的存儲庫方法創建上下文返回值並處理上下文。任何傳入的內容都將添加到上下文中或重新添加。
在這種情況下,我沒有使用延遲加載,但我可能會在將來的其他地方使用它。 – Gavin 2010-12-06 12:24:21