문제

LINQ 쿼리를 나중에 사용하거나 표시/인쇄하기 위해 LINQ 쿼리를 빌드하는 방법이 있습니까 (보다 구체적으로는 Where 절)?

도움이 되었습니까?

해결책

정확히 당신이 원하는 것은 무엇입니까? 당신은 만 캡처 할 수 있습니다 표현 ~로부터 Where - 같은 것 :

Expression<Func<SomeType, bool>> predicate = row => row.IsActive
          && row.Color == "red";

이것은 표현 트리로 가기 때문에 의미있는 것이 있습니다. ToString().

SQL (etc)을 원한다면 구현별로됩니다. 예를 들어 LINQ-to-SQL을 사용하면 사용할 수 있습니다 .Log - 예를 들어, ctx.Log = Console.Out;

당신이 한가운데에서 술어를 원한다면 IQueryable<T> 피드, 그럼 훨씬 까다 롭습니다 ...

다른 팁

LINQ A .NET 3.5-FEATURE가 아닌가?

편집하다:

http://msdn.microsoft.com/en-us/library/bb332048.aspx

-> LINQ는 .NET 3.5에서만 사용할 수 있으므로 TopicStarter가 요청한대로 3.0이 아닙니다.

edit2 :

자, TS는 .NET 3.5와 함께 제공되는 C# 3.0에 대해 이야기합니다.

꽤 혼란 스럽습니다.

system.linq.dynamic its addonam ad ad aldon을 볼 수 있습니다.

예 : tblproduct.where ( "product_id = @0", product_id)

그것은 약간의 도움이 될 수 있습니다.

MSDN 에서이 예를보십시오.

// Lambda expression as executable code.
Func<int, bool> deleg = i => i < 5;
// Invoke the delegate and display the output.
Console.WriteLine("deleg(4) = {0}", deleg(4));

// Lambda expression as data in the form of an expression tree.
System.Linq.Expressions.Expression<Func<int, bool>> expr = i => i < 5;
// Compile the expression tree into executable code.
Func<int, bool> deleg2 = expr.Compile();
// Invoke the method and print the output.
Console.WriteLine("deleg2(4) = {0}", deleg2(4));

LINQ를 표시 할 수 없습니다 (AFAIK), 'LINQ2SQL'쿼리 (Qg. SQL 쿼리)를 의미하는 경우, 인쇄 할 수 없습니다.

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