C# 및 면도기에 ASP.NET MVC3이 있습니다. 응용 프로그램의 아키텍처는 데이터 액세스 계층 (EF 클래스 + 저장소), 서비스 계층, 컨트롤러, ViewModels 및 뷰로 구분됩니다. 내가 메소드를 호출 내 서비스 레이어 ProductServices
에서서비스 계층에서 EF 클래스 속성에 액세스하는 방법
은 다음과 서명이 내 저장소 ProductRepository
에 의해 노출 GetAllProducts
:
ProductServices
내의 따라서
IQueryable<Products> GetAllProducts()
(productRepository
를 ProductRepository
의 인스턴스)
var products = productRepository.GetAllProducts();
이 변수 products
을 채 웁니다. 이제 제품 번호 ProductName
에 productServices
에서 액세스하고 싶습니다. 나는이 명령을 사용하는 경우 :
var productNames = products.Select(m => m.ProductName).ToList();
을 나는 ServiceLayer과 EF (저장소를 우회) 사이에 커플 링을 만드는 오전. 그건 내가 서명 ProductRepository
에 메소드를 추가해야 함을 의미합니다 :
IQueryable<string> GetAllProductsName()
을하지만, 내 응용 프로그램에서 다른 제품의 정보가 필요하기 때문에, 나는 Product
클래스의 각 필드에 productRepository
하나의 방법을 만들 수 있겠습니까? 내 논리가 맞습니까? 감사합니다
요청을 프록시하기 위해 서비스 계층이 필요한 이유는 무엇입니까? – Eranga
답변 해 주셔서 감사합니다. 물론 비즈니스 계층의 모든 비즈니스 논리와 여러 가지 방법을 사용할 수 있기 때문에 필요한 이유입니다. – CiccioMiami
왜 이러한 유형의 연결이 좋지 않다고 생각합니까? – Eranga