我有一个使用 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,由业务层暴露,也是一个dll,由web api控制器调用。我曾假设 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 实例已被释放,不能再用于需要连接的操作。