2010-03-12 2 views
1

Существует уже открытая DataReader, связанная с этой командойLINQ To ошибки SQL «Существует уже открытая DataReader, связанная с этой командой»

Я получаю эту ошибку, когда я извлечение данных из объекта DataContext ,

Как это можно исправить?

+1

Показать код пожалуйста. –

+0

Вам нужно показать, как вы используете и располагаете DataConext –

ответ

0

Вы забыли закрыть DataReader, и вы запустите еще один DataReader в том же соединении.

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

Проверить этот пост

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

Это действительно зависит, как вы хранить, получать доступ и распоряжаться DataContext. Попробуйте воспроизвести ошибку, используя инструмент проверки нагрузки. Я использую jmeter. Многие люди не знают, что у них есть эта проблема, потому что у них слишком мало трафика.

Смежные вопросы

 Смежные вопросы