我在 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吗?我的推理正确吗?谢谢