C# と Razor で ASP.NET MVC3 を使用しています。アプリケーションのアーキテクチャは、データ アクセス レイヤー (EF クラス + リポジトリ)、サービス レイヤー、コントローラー、ビューモデル、ビューに分かれています。
Service Layer から、次の署名を持つRepository によって公開されProductServicesたメソッドを呼び出します。GetAllProductsProductRepository
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のフィールドごとに 1 つのメソッドを作成する必要がありますか? Product私の推論は正しいですか?ありがとう