2011-01-18 6 views
2

람다 식을 사용하는 조건에 대한 안녕하십니까.람다 식에서 같은 연산자를 사용하는 방법

나는 (그 긴급 작은)

내 질문은, 쿼리처럼 할, 내가 startswith을 사용할 수 있습니다 이해하는 방법처럼 등 또는 sqlmethods를 포함하면 빨리이 게시물에 회신 할 수 있기를 바랍니다. 그러나 람다 식으로 사용하는 법.

예 : Person 엔티티에 이름이 있습니다. 아래 예에서 person.name = 'john'을 검색합니다.

그러나 사용자는 비교를 위해 런타임에 연산자를 선택할 수 있습니다 (예 : 같음, 같음 시작, 끝남 등) 예 : person.name = 'john'또는 person.name은 'j %'또는 person.name은 '% j'또는 person.name은 '% jo %'를 포함 할 수 있습니다.

어떻게 다이 나믹 쿼리를 구성 할 수 있습니까? 위의 코드를 수정하고 알려주십시오. 내가 linq에 아주 새로운 것에 따라, 나는 lambda를 그렇게 잘 이해하지 않는다.

귀하의 도움에 감사드립니다.

소스 코드 - EXPN의

DataContext context = new DataContext // linq to sql data context. 
    Query<Person> q = new Query<Person>(context); 
    Expression<Func<Manufacturer, bool>> expn = DynamicExpression.ParseLambda<Manufacturer, bool>(condition, value); //condition is "[email protected]", value = string[] i.e - "john" 
       q.Where = expn; 
       return q.SingleOrDefault<Person>(); 

예는 이름 = @ 0,하지만 난 어떻게 '0 % @ %'와 같은 이름을 수행 할? Linq2SQL에서

public Expression<Func<T, bool>> Where 
{ 
    set { m_where = value; } 
} 

답변

-1

을 다음과 같이

쿼리 클래스는 당신이 SqlMethods.Like를 사용할 수있다.

+0

하지만 어떻게. 쿼리 q = 새 쿼리 (컨텍스트); Expression > expn = DynamicExpression.ParseLambda <사람, bool> (조건, 값); // 조건은 "name = @ 0", 값 = 문자열 [] 즉 - "john" q.Where = expn; return q.SingleOrDefault (); – user476566

5

당신은 이것을 시도 할 수 있습니다!

list.exists (요소 => element.startswith() "텍스트를 시작하는 목록에서 검색하는 방법") SQL 데이터 컨텍스트에 대한 표현의 DataContext 컨텍스트 = 새 DataContext에 // LINQ에 대한

관련 문제