Я просто унаследовал приложение ASP.NET MVC4, который имеет базовый класс со следующим элементом:защищенный статический в базовом классе
protected static DBMainDataContext m_dataContext = new DBMainDataContext();
Этот базовый класс наследуется двумя другими классами, как использовать LINQ для чтения данных из базы данных. Тот факт, что этот базовый класс имеет статический контекст данных, создает ли это проблему? Кажется, что мы получаем ошибки вдоль линии, где DataReader недоступен, поскольку он уже открыт. Может быть, это и есть причина? Если да, то как его объявить? Я просто удаляю статическое ключевое слово?
Спасибо!
Как правило, повторное использование экземпляра 'DBContext' или' ObjectContext' представляется плохой идеей. Я бы сказал, что лучший способ сделать это - создать некоторый 'Func', который возвращает новый экземпляр каждого раза, когда это требуется. –
@HighCore Технически не нужно ничего менять, кроме статического ключевого слова, так как контроллер, содержащий его, создается MVC для каждого запроса. –
Правильно ли вы закрываете datareader, когда закончите чтение данных из базы данных? – ryrich