Проблема с загрузкой данных MVC 3 и Entity Framework 4.1

Хорошо!

Я должен сказать, что обе технологии великолепны. Хотя кажется, что я чего-то не понимаю. возьми.

У вас есть данные в базе данных (и, допустим, вы хотите отобразить данные из таблицы, в которой есть ссылки на другие таблицы).

У меня есть модель со списком, IEnumerable, IQueryable или чем-то еще...

Так что, на мой взгляд, я хочу использовать foreach через список объектов и воспользоваться интересной функцией ссылок на другие таблицы. Нет проблем в контроллере, пока вы находитесь в

using (var datatabse = new MyEntity)
{
}

. Но когда вы выходите из использования, db has disposed и вы получаете общую ошибку. Экземпляр ObjectContext был удален и больше не может использоваться для операций, требующих соединения.

Таким образом, я не вижу других вариантов, таких как создание в памяти копий сущностных объектов... но вы теряете все классные ссылки EF4, и вам приходится сначала вручную загружать данные в вашу модель, а затем с помощью foreach отображать их в представлении.

Таким образом, вместо List<(EF4Type)> или IEnumerable<(EF4Type)> или IQueryable<(EF4Type)>

вы должны использовать List<(MyCustomHelperClass)>, где MyCustomHelperClass представляет класс со свойствами, аналогичными объектам-сущностям. и, возможно, некоторые дополнительные, потому что у вас нет доступа к свойствам ссылочных таблиц. Затем вам нужно выполнить foreach и загрузить данные в этот список, а другой @foreach в представлении с Razor, чтобы показать все.

Вдвое больше работы, и если проект большой... вы можете увидеть более полную картину того, сколько вам нужно этих вспомогательных классов. Действительно ли все эти крутые новые технологии предназначались для такого использования?... или я что-то упустил.

0
задан TheMentor 17 May 2012 в 20:35
поделиться