람다 식을 사용하는 조건에 대한 안녕하십니까.람다 식에서 같은 연산자를 사용하는 방법
나는 (그 긴급 작은)
내 질문은, 쿼리처럼 할, 내가 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; }
}
하지만 어떻게. 쿼리 q = 새 쿼리 (컨텍스트); Expression > expn = DynamicExpression.ParseLambda <사람, bool> (조건, 값); // 조건은 "name = @ 0", 값 = 문자열 [] 즉 - "john" q.Where = expn; return q.SingleOrDefault (); –
user476566