У меня есть приложение ASP.NET Web Forms.Я хотел бы постепенно переместить приложение из веб-форм в MVC.Первый шаг, который я делаю, - это переместить все запросы из кода на слой репозитория.
Для этого я создаю отдельный проект ( библиотека классов ), в который я помещаю LINQ Entity Framework a Класс репозитория и Интерфейс репозитория .Затем на этот проект ссылаются веб-формы ASP.NET.
Методы, предоставляемые интерфейсом, всегда возвращают объект IQueryable<T>
(кроме тех, которые возвращают скалярные значения, которые не интересны для этой проблемы).
Как отправить набор результатов в GridView ?Предположим, я реализую в классе Repository:
IQueryable<T> GetAll();
Как сообщить GridView, что мой источник данных GetAll()
?Является ли этот код правильным или я должен указать где-нибудь, что DataSource является LinqDataSource ?
IMyRepository dataRepository = new MyRepository();
myGridView.DataSource = MyRepository.GetAll().ToList();
myGridView.DataBind();
Я бросил IQueryable<T>
ToList()
, поскольку я ожидаю, что DataSource будет IEnumerable<T>