我在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