У меня есть ASP.NET MVC3 в C # и Razor. Архитектура приложения разделена на уровень доступа к данным (классы EF + репозиторий), уровень обслуживания, контроллер, ViewModels и View.
Из моего сервисного уровня ProductServices
я вызываю метод GetAllProducts
, предоставляемый моим репозиторием ProductRepository
, который имеет следующую подпись:
IQueryable<Products> GetAllProducts()
Поэтому в ProductServices
я звоню (productRepository
это экземпляр ProductRepository
):
var products = productRepository.GetAllProducts();
, который заполняет переменную products
. Теперь я хотел бы получить доступ к названию продукта ProductName
из productServices
. Если я использую эту инструкцию:
var productNames = products.Select(m => m.ProductName).ToList();
Я создаю связь между ServiceLayer и EF (в обход хранилища). Это означает, что я должен добавить к ProductRepository
метод с подписью:
IQueryable<string> GetAllProductsName()
Однако, поскольку в моем приложении нужна другая информация о продукте, я должен создать один метод в productRepository
для каждого поля класса Product
? Правильно ли мои рассуждения? Спасибо