Лучший отвечающий
Проблема с чтением данных в asp.net mvc3

Вопрос
-
Всем доброго времени суток. Я пытаюсь прочесть данные которые находятся в базе данных из таблиц связанных one to many code-first.
В общем в консольном приложении, в котором я треннировался выводить данные, нижепреведенный код работает на ура.
string querystr = result[1]; var model = _db.Words .Where(w => w.WordText == querystr); StringBuilder wordTranslate = new StringBuilder(); StringBuilder response = new StringBuilder(); foreach (var item in model) { foreach (var translates in item.Translates) { wordTranslate.Append(translates.Translates + " "); } response.Append("Слово - "+item.WordText+" "+"перевод - "+wordTranslate); } return response.ToString();
Но в приложении asp dot net mvc 3 примерно такой же код приводит к ошибке:
Существует назначенный этой команде Command открытый DataReader, который требуется предварительно закрыть.
Использую DTO для вывода данных.
public class DayDTO { public int Id { get; set; } public string Name { get; set; } public ICollection<ScheduleDTO> Schedule { get; set; } } public class ScheduleDTO { public int Id { get; set; } public string Group { get; set; } public DateTime Time { get; set; } }
Сам метод который возвращает данные.
public DayDTO getDay (int id) { DayDTO dayDTO = new DayDTO(); ScheduleDTO scheduleDTO = new ScheduleDTO(); var days = db.Day.Where(d=>d.Id == id); foreach (var day in days) { foreach (var schedule in day.Schedule) { dayDTO.Name = day.Name; scheduleDTO.Group = schedule.Group; scheduleDTO.Time = schedule.Time; } } return dayDTO; }
В чем может быть ошибка? Подскажите пожалуйста, или другой путь как вывести данные.
Спасибо.
4 сентября 2012 г. 8:13
Ответы
-
Да, такое бывает иногда. Если Вы вручную не открываете и закрываете соединения (потом забываете их закрыть), а в данном случае скореее всего это именно так, то попробуйте установить данное свойство.
data source=.\SQLEXPRESS;initial catalog=database;integrated security=true;user instance=True;multipleactiveresultsets=True;
Тут конечно речь только о последнем параметре, остальное должно быть ваше.
- Предложено в качестве ответа Abolmasov Dmitry 5 сентября 2012 г. 6:24
- Помечено в качестве ответа YatajgaEditor 10 сентября 2012 г. 19:40
4 сентября 2012 г. 9:40Модератор
Все ответы
-
Да, такое бывает иногда. Если Вы вручную не открываете и закрываете соединения (потом забываете их закрыть), а в данном случае скореее всего это именно так, то попробуйте установить данное свойство.
data source=.\SQLEXPRESS;initial catalog=database;integrated security=true;user instance=True;multipleactiveresultsets=True;
Тут конечно речь только о последнем параметре, остальное должно быть ваше.
- Предложено в качестве ответа Abolmasov Dmitry 5 сентября 2012 г. 6:24
- Помечено в качестве ответа YatajgaEditor 10 сентября 2012 г. 19:40
4 сентября 2012 г. 9:40Модератор -
Привет. Пожалуйста, не забудьте отметить ответ, если он решит вашу проблему. Для этого есть кнопка "Пометить как ответ" под сообщением. Спасибо.
Для связи [mail]
5 сентября 2012 г. 6:23