2012-02-03 3 views
1

내가이 같은 익명 형식을 생성하는 LINQ - 투 - XML ​​쿼리를 가지고 말 :LINQ 쿼리를 변수/상수로 저장하고 있습니까?

var aQuery = 
       (from a in document.Root.Elements("items") 
       select new { 
        id = a.Attribute("id").Value, 
        type = a.Attribute("type").Value, 
        modified = a.Attribute("modified").Value 
       }); 

변수 나 상수에 해당 쿼리 식을 저장 한 후 런타임에 실행하는 방법이 경우? 기본 개념은 여러 표현식을 가지고 있으며 한 곳에서 모두 정의 된 다음 XML 문서와 표현식을 전달해야하는 단일 메서드를 통해 동적으로 호출 할 수 있다면 편리 할 것입니다. 감사.

+2

"변수 또는 상수에 해당 쿼리 식을 저장 한 다음 런타임에 실행할 방법이 있습니까?" 당신은 이미 aQuery 변수에 쿼리를 저장하여 직접했습니다 ... – user1096188

+1

나는 그 요점을 놓치고 있다고 생각합니다. 분명히 그것은 지역 변수로 저장 될 수 있습니다. 그렇지 않으면 Linq에서 아무것도하지 않는 방식으로 작동합니다. 하지만 당신이 'var'타입의 클래스 레벨 변수를 정의 할 수는 없습니다. – snappymcsnap

+0

질문을 잘못 해석 할 수있는 곳을 볼 수 있습니다.하지만 정확히 OP가 무엇인지 정확히 파악하고 있었기 때문에 괜찮 았습니다. – aaaaaa

답변

3

익명 형식을 사용할 권리는 있지만 쉽게 메서드로 정의 할 수 있습니다.

public static IQueryable<Item> GetItemsFromXml(XDocument document) 
{ 
    return (from a in document.Root.Elements("items") 
      select new Item 
      { 
       Id = a.Attribute("id").Value, 
       Type = a.Attribute("type").Value, 
       Modified = a.Attribute("modified").Value 
      }); 
} 

그런데 저장소 패턴과 같은 패턴을 사용하여 데이터에 액세스하는 전체 프로세스를 래핑합니다.

+0

예 불행히도 익명 성이 있어야합니다 ... 그다지 큰 문제는 아니지만 주로 조직적인 목적으로 수행하려고했습니다. 감사합니다. – snappymcsnap

관련 문제