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