2010-12-29 3 views
3

을 표현 내가 LINQ 표현을 많이 사용하고 난 사용자가를 사용하여 텍스트 표현 내 프로젝트에서

그래서 텍스트 입력에 LINQ 쿼리를 입력하여 자신의 쿼리를 입력 할 수있는 것, 그것을 만들 수 있습니다 이 텍스트가 포함 된 LINQ 표현식? 또한 linq 쿼리와 동일한 텍스트를 얻을 수 있습니까? 사전

+0

예는 그래,하지만 지금 연구 할 시간이 없습니다. .Net에서 코드 줄을 실행할 수 있지만 클래스로 래핑하고 메서드로 컴파일하고 호출해야합니다. 코드를 "언로드"(메모리 정리) 할 수 있어야하는 경우 별도의 AppDomains에서이 작업을 수행 할 수 있습니다. LINQ 쿼리를 인쇄하여 디버그하여 LINQ 쿼리를 배치 할 수도 있습니다. 내가 참석했던 초기 LINQ 세미나 중 하나에서 이것을 보았습니다. 미안 해요 세부 사항을 파헤 치지 못해서 지금 당장 가야 해요. –

+0

먼저 원하는 것은 C#의 평형 equvalant입니다. 구글 그것. :) –

답변

5

에 의해

감사의 (FOO에서 줄을 선택 foo는에서와 같은) 당신은 NLinq을 시도 할 수 있습니다 : http://nlinq.codeplex.com

+0

이것은 완벽하게 보인다! 감사 – eka808

0

은 당신이 사용자 (무료) LinqPad의 사본을 줄 수 가능, 그리고 그들은 그들 자신의 질의를 생성 할 수 있고 또한 SQL 텍스트를 볼 수 있습니까? 이 작업에 걸릴 것 인 경우에

LinqPad 찾을 수

here

2

, 당신은 기본적으로 컴파일러의 일을하는 것 (식의 텍스트 표현을 복용하고 그것의 표현 트리를 만드는.입니다 많은 작업과 아마도 시간의 가치가없는 것입니다. 마음에 떠오르는 첫 번째 생각은 linq 쿼리에 다른 유형을 넣은 다음 즉시 컴파일하는 것입니다.이 명백한 단점은 일단 어셈블리가 메모리에로드되면 , AppDomains를 사용하지 않는 한 언로드 할 수 없으므로 기본적으로 메모리 누수가됩니다.

사용자가 Entity Framework를 사용하고 있으므로 가장 좋은 대답은 다음과 같습니다. 아마도 ESQL, http://innocraft.spaces.live.com/blog/cns!919A8CAC315ADF82!239.entry을 사용할 것입니다. 이것은 항상 텍스트 형식으로 처리되며 Entity Framework는 사용자를 위해이를 파싱하고 런타임에 쿼리를 실행합니다.

HTH

관련 문제