已经有一个与此命令关联的开放DataReader
从DataContext对象检索数据时出现此错误。
如何解决这个问题?
答案 0 :(得分:5)
确保您没有将DataContext声明为static
。在每次使用时创建和销毁DataContext。
public MyDataClass{
CustomerDataContext db;
public void MyDataClass()
{
db = new CustomerDataContext();
}
public Customer GetCustomer(int id)
{
return db.Customers.SingleOrDefault(c=>c.ID == id);
}
}
答案 1 :(得分:1)
查看此帖子
Is mixing ADO.NET and LINQ-TO-SQL bad? My data layer isn't working
它实际上取决于您如何存储,访问和处置datacontext。 尝试使用负载测试工具重现错误。我用jmeter。很多人不知道他们有这个问题,因为他们的流量太少了。
答案 2 :(得分:0)
您忘记关闭DataReader,并在同一连接上再启动一个DataReader。
答案 3 :(得分:0)
帮助我的原因是,将与错误相关联的所有IQueryable
类型转换为更多的本机类型,然后在另一个查询中使用它们。