Хорошо!
Я должен сказать, что обе технологии великолепны. Хотя кажется, что я чего-то не понимаю. возьми.
У вас есть данные в базе данных (и, допустим, вы хотите отобразить данные из таблицы, в которой есть ссылки на другие таблицы).
У меня есть модель со списком, 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, чтобы показать все.
Вдвое больше работы, и если проект большой... вы можете увидеть более полную картину того, сколько вам нужно этих вспомогательных классов. Действительно ли все эти крутые новые технологии предназначались для такого использования?... или я что-то упустил.