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