开发者

LINQ To SQL error "There is already an open DataReader associated with this Command"

开发者 https://www.devze.com 2022-12-22 22:29 出处:网络
There is already an open DataReader associated with this Command I am getting this开发者_如何学Go error when I retrieve data from the DataContext object.

There is already an open DataReader associated with this Command

I am getting this开发者_如何学Go error when I retrieve data from the DataContext object.

How can this be fixed?


Ensure that you're not declaring your DataContext as static. Create and destroy your DataContext on each use.

public MyDataClass{

    CustomerDataContext db;

    public void MyDataClass()
    {
       db = new CustomerDataContext();
    }

    public Customer GetCustomer(int id)
    {
       return db.Customers.SingleOrDefault(c=>c.ID == id);
    }
} 


Check this post

Is mixing ADO.NET and LINQ-TO-SQL bad? My data layer isn't working

It realy depends how you store, access and dispose the datacontext. Try to reproduce the error using a load test tool. I use jmeter. Lots of people don't know that they have this issue, because they have too little traffic.


You have forget to close the DataReader, and you start one more DataReader on the same connection.


What helped me was converting all the IQueryable types associated with the query that is throwing the error to more native types before using them in another query.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号