Я только начинаю с Entity Framework 4.0 и ASP.NET MVC 2 и у меня есть несколько вопросов, касающихся использования хранимых процедур и подкачки страниц.
Вы можете сопоставить действия Вставить, Обновить и Удалить с хранимыми процедурами, и я уже сделал это. Однако, чтобы мой пейджинг работал, мне нужно сопоставить действие Select.
Теперь это единственный / лучший способ сделать это, перейдя в браузер модели, щелкнув правой кнопкой мыши по хранимой процедуре и «Добавление функции импорта» и добавив ее.
В результате получается следующий код ....
var contactFormSubmissions = _entities.ContactFormSubmission_GetContactFormSubmissions(1, 10);
Моя проблема с этим заключается в том, что он добавляет его в контейнер глобальных сущностей на корневом уровне, а не в сущность ContactFormSubmission, такую как действия Вставить / Обновить и Удалить.
Я бы предпочел что-то подобное, но через хранимую процедуру ...
_entities.ContactFormSubmissions.Select<ContactFormSubmission>(string.Empty, pageParam, pageSizeParam);
Таким образом, выбор вызывается так же, как и другие действия, и я не получаю множество функций в корне контейнера сущностей, которые могут стать неуправляемыми.
Это меньшая проблема, так как, по крайней мере, все это работает в настоящее время.
Мой следующий вопрос - как лучше реализовать пейджинг с помощью этой функции.
Все примеры, которые я видел о том, как выполнить подкачку с использованием MVC и Entity Framework, использовали LINQ и IQueryable. Есть ли способ использовать IQueryable с отложенной загрузкой и функциями LINQ Пропустить / взять с табличной функцией / sproc?
http://blog.wekeroad.com/2007/12/10/aspnet-mvc-pagedlistt/
PS - любые примеры подкачки в MVC с Entity Framework с использованием SP были бы хорошими!