我有一个
public static class Repository
在我的网络表单项目中。
在该类的静态块中,我设置了我的实体框架实体对象:
private static readonly ProjectEntities db;
static Repository()
{
db = new ProjectEntities("Name=ProjectEntities");
}
然后我设置了一些像这样的公共静态方法:
public static Order GetOrder(int orderID)
{
return db.Orders.First(o => o.OrderID == orderID);
}
问题是,当例如删除失败时(由于某些约束),我会在后续连接中随机获得一些关于该问题的线索,作为应该是无辜的查询的结果而出现的异常。例如,由于选择查询而导致的删除异常。
我从不
db.AcceptAllChanges();
在任何例外情况下,我都不应该这样做,因为跨页面访问,不应该有失败查询的痕迹。还是应该?清洁责任在我身上吗?
那些问题应该不是因为我使用了静态(请说不是那样),那么它与实体框架连接池有关吗?