我在C#和Razor中有一个ASP.NET MVC3。应用程序的体系结构分为数据访问层(EF类+存储库),服务层,控制器,视图模型和视图。如何从服务层访问EF类属性
从我的服务层ProductServices
我调用该方法GetAllProducts
暴露通过我的库ProductRepository
,其具有以下特征:
IQueryable<Products> GetAllProducts()
内ProductServices
我请因此(productRepository
是ProductRepository
一个实例):
var products = productRepository.GetAllProducts();
填充变量products
。现在我想从productServices
访问产品名称ProductName
。如果我用这个指令:
var productNames = products.Select(m => m.ProductName).ToList();
我ServiceLayer和EF(绕过库)之间建立连接。这意味着我必须补充到ProductRepository
的方法有签名:
IQueryable<string> GetAllProductsName()
然而,因为我在我的应用程序需要其他的产品信息,我将创建一个productRepository
方法为Product
类的各个领域?我的推理是否正确?由于
为什么你需要服务层,如果它只是代理请求? – Eranga 2012-02-20 11:49:46
感谢您的回答。当然,我的服务层也有所有业务逻辑和几种方法,这就是为什么我需要它 – CiccioMiami 2012-02-20 11:56:11
是什么让你认为这种耦合类型是不好的? – Eranga 2012-02-20 11:59:03