0

집합 개체 프레임 워크 개체를 쿼리하고 WCF RIA 서비스를 통해이를 광 스위치로 투영하려고합니다.select 문에서 linq 쿼리를 사용하여 엔티티 프레임 워크로 부울을 결정하는 방법

내 쿼리에서 두 테이블 간의 조인을 수행하며 그 중 하나는 요약 테이블의 세부 사항입니다. 어떤 세부 항목이 목록의 '첫 번째'항목인지 결정하고 열거 중에 내 예상 항목의 현재 항목과 비교하려고합니다. 투영 중에있는 이유는 사용 가능한 속성 중이 특정 투영의 속성을 설정하는 것을 변경하려고합니다.

이 쿼리가 너무

내가 평가할 수있는 방법
var result = (from dataItem in (from x in Context.xs 
       join y in Context.ys 
       on x.property = y.property 
       select new {x, y}) 
       .Select((model, index) => 
          new ObjectType 
           { 
            Id = index, 
            OneOfTwo = model.x.property, 
            (
             from y in Context.ys 
             where y.SomeProperty == model.Property 
             select y) 
             .OrderBy(list=>list.Id) 
             .FirstOrDefault() 
             .ComparedProperty ==model.ComparedProperty 
            ) 
            ? model.AnotherProperty 
            : model.YetAnotherProerty 
           } 
       ); 

감소입니다 내가 읽고되는 동안 컨텍스트를 사용하는 것을 시도하고 있기 때문에 DataReader가 오류로 실행하지 않고 내부 쿼리?

업데이트 :
나는 linq에서 SQL로 문제가 아니지만 실체에 대한 linq 문제입니다. 본질적으로 연산은 지원되지 않는 매개 변수화 된 쿼리를 사용하는 것과 동일합니다. 이 상황에서 해결 방법은 무엇입니까?

+1

가짜 코드 주위에 머리를 감싸는 데 문제가 있습니다. 'model.x.property'는'model.Property'와 정말로 다른가요? 도움이 될만한 점은이 코드와 함께 제공되는 의사 데이터를 제공 한 다음 달성하고자하는 결과물을 제공 할 수있는 경우입니다. 시작하는 데이터와 그 모양을 만드는 방법을 확인하는 것이 좋습니다. –

+0

이 좋아, 여기에 내가 주문 {아이디, 사용자 아이디, 날짜, PromoCodeId}으로 시작 무엇 OrderItem에 {아이디, 주문 ID, 제품 ID} PromotionPrice {아이디, PromoCodeId, 제품 일련 번호, 가격, AdditionalItemPrice} 내가 얻으려고 {OrderId, OrderItemId, UserId, PromoCodeId, PromotionPrice} 필드를 캡슐화하는보기 문제는 OrderId로 그룹화 할 때 특정 제품이 해당 제품의 첫 번째 제품인지 아닌지를 결정하고 프로모션 가격의 적절한 가격. Entity에 대한 Linq는 전체보기 크기를 두 번 반복하지 않고이 작업을 수행 할 수 없습니다. –

답변

0

데이터를 객체에 전송하고 객체에 linq를 사용하는 데 필요한 List 컬렉션에 데이터를 투영하는 것이 해결책이었습니다. 그런 다음 WCFRIA 서비스를 통해 내 컬렉션을 lightswitch에 다시 노출했습니다.

0

LightSwitch는 속성이 인 엔티티를 가질 수 없습니다. 구체 엔티티가 주어져야합니다. 따라서 동적 속성이 동일한 유형 (지정하지 않은 경우)이 아니라면 원하는 작업을 수행 할 수 없을 것이라고 생각합니다.

+0

공정한 편이라면 lightchitch로 보내지기 전에 WCF RIA 서비스에서 linq 문을 수행하고 있습니다. 그러나, 나는 여전히 LINQ에 엔티티 문제가 내 WCF RIA 서비스가 lightswitch에 연결된 SQL 서버 데이터베이스에서 생성 된 lightswitch에있는 엔티티를 사용하기 때문에 실행 중입니다 –

+0

linq 문은 필드가 일정한 POCO 엔티티의 인스턴스를 생성합니다 그러나, 내 테이블 열 중 해당 필드를 동적으로 만들려고합니다. 순서대로, 나는 레코드가 첫 번째인지 아닌지에 따라 같은 필드를 다르게 설정하려고합니다. –

+0

그래, 그게 말이야. 이제 어떻게 작동하지 않는지 더 알려줄 필요가 있습니다. 정확한 오류 메시지는 무엇입니까? –