對於EF來說,我很新...目前我正在使用EF開發asp.net中的網站,並且有時會出現有關連接的異常。異常當使用實體框架時,連接的當前狀態被破壞
我讀過這篇文章http://cgeers.com/2009/02/21/entity-framework-objectcontext/根據這一點,我已設定:
public static class ObjectContextPerHttpRequest
{
public static tradeEntities Context
{
get
{
string objectContextKey = HttpContext.Current.GetHashCode().ToString("x");
if (!HttpContext.Current.Items.Contains(objectContextKey))
{
HttpContext.Current.Items.Add(objectContextKey, new tradeEntities());
}
return HttpContext.Current.Items[objectContextKey] as tradeEntities;
}
}
}
,然後我用myEntities et = p.ObjectContextPerHttpRequest.Context;
這地方在我的網站我需要的產品......爲了要做到這一點我用這個:
public List<tProducts> returnProductsFromSubcategory(int subcategoryID)
{
var prod = from p in et.tProducts
from c in et.tCompany
where (c.companyID == p.fk_companyID && c.enable == true)
where (p.subCategoryID == subcategoryID && p.enable == true)
select p;
//et.Connection.Close();
return prod.ToList(); //Here comes an Exception The connection's current state is broken.
}
有時它工作正常,但有時我得到一個異常。
System.InvalidOperationException該命令的執行需要一個 開放和可用的連接。該連接的當前狀態爲 損壞。
我不知道什麼是錯的。我讀過我應該實現處理功能,但在哪裏添加它,我該怎麼做?
非常感謝您的幫助。
馬丁
在您不需要查詢數據庫時,您必須在每次使用它的請求處理中處置ObjectContext。這是使用靜態上下文訪問器的方法並不十分有用的原因。 – 2012-01-28 11:53:19
好的,以及如何處置?我能做些什麼動態的嗎? – 2012-01-28 19:16:05
Ups ...似乎我的問題已被遺忘......我將非常感謝任何提示,我如何編程處置行動。謝謝。 – 2012-01-31 19:13:00