LINQ-to-SQL DataContext의 기본 매개 변수 세트를 지정할 수 있습니까?

StackOverflow https://stackoverflow.com/questions/278281

  •  07-07-2019
  •  | 
  •  

문제

제품과 가격과 제품의 부모-자식 관계를 나타내는 LINQ-to-SQL DataContext가 있습니다. 나는 제품 목록을 반복하고 각 제품의 가격을 검색하고 있습니다. 문제는 제품과 가격의 표 뒤에있는 테이블에는 3 개의 필드 복합 키에 의해 결정된 여러 환경의 제품 또는 가격 목록이 포함되어 있다는 것입니다. 해당 환경 중 하나만 제품과 가격을 회수하고 싶습니다.

이를 수행 할 수 있습니다. 제품 키와 복잡한 환경 키로 구성된 각 LINQ 쿼리의 조항이 다음과 같은 시간을 지정할 수 있습니다.

var price = ( from condition in conditiontype where condition.MaterialNumber == material && condition.Client == "400" && condition.SalesOrg == "1000" && condition.DistributionChannel == "10" select condition.ConditionDetails[0].ConditionValue );

내가 할 수있는 것은 쿼리 자체에 지정 해야하는 모든 것이 제품 ID (MaterialNumber)라는 클라이언트, Salesorg 및 DeptributionChannel을 전 세계적으로 지정하는 것입니다. 이렇게하면 생산 환경 쿼리를 시작할 때 Datacontext로 간단한 변경으로 인해 쿼리중인 환경이 변경됩니다.

이게 가능해? 간단한 코드 샘플이나 배경 이론에 대한 포인터는 훌륭 할 것입니다!

도움이 되었습니까?

해결책

당신은 사전 작성된 것을 가질 수 있습니다 Expression<T> 그런 다음 해당 값이 있습니다.

public Expression<Func<int>> GetPrices = p => // do Lambda here

또는 DataContext에 속성을 넣을 수 있습니다 (기억하십시오. 부분적 클래스를 쉽게 확장 할 수 있습니다) 설정 한 다음 표현으로 읽습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top