Entity Framework 5 を使用して SQL Server に接続するデータ層があります。また、データを取得する LINQ クエリもあります。このクエリは、Web API で使用すると失敗します。ObjectDisposedException を取得します。クエリは次のとおりです。
using (MyContext container = new myContext())
{
return container.Sales
.Include("Products")
.Where(s => s.Id == id)
.FirstOrDefault();
}
データ レイヤーは、ビジネス レイヤーによって公開される dll であり、Web API コントローラーによって呼び出される dll でもあります。JSON シリアライザーがインクルードを遅延読み込みしていると思っていましたが、私の修正はどれもうまくいきませんでした。何か案は?情報が欠落している場合は、必要に応じて質問を更新します。
データ層へのビジネス層呼び出しは次のとおりです。
public Sale GetSale(int id)
{
SaleRepository s = new SaleRepository();
return s.GetSale(id);
}
最後に、ビジネス層への Web API 呼び出し:
public Sale GetSale(int id)
{
SaleManager s = new SaleManager();
return s.GetSale(id);
}
例外は次のとおりです。
ObjectContext インスタンスは破棄されており、接続を必要とする操作には使用できなくなりました。