我在 C# 和 Razor 中有一个 ASP.NET MVC3。应用程序的架构分为数据访问层(EF 类 + 存储库)、服务层、控制器、ViewModels 和 View。
从我的服务层ProductServices
,我调用GetAllProducts
我的 Repository 公开的方法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
吗?我的推理正确吗?谢谢