2012-08-08 2 views
1

EF generic reposity를 사용한 몇 가지 예를 보았습니다. 나는 LINQ에 대해 매우 확고한 그립을 가지고 있지 않으므로이 방법을 사용하는 방법을 이해할 수는 없습니다. plese 날 안내 해줄 수 있니? 여기 내 코드가있다. 나는 표현을 어떻게 전달할 것인가를 알지 못한다. 당신이 예제로 안내 할 수 있다면 크게 appriciate 것입니다.EF 저장소의 find 메소드를 사용하는 방법은 무엇입니까?

public IEnumerable<T> Query(Expression<Func<T, bool>> filter) 
    { 
     return objectSet.Where(filter); 
    } 

감사

답변

2

당신은 어디 방법 당신은 LINQ를 사용하는 것과 같은 방법으로이를 사용할 수 있습니다. T는 사용자가 이름 속성 인 경우

예를 들어, 당신은

Query(u=>u.Name == "Bob"); 

표현의 이러한 유형은 람다 식라고 할 수있다. 익명, 그래서

var repo = new StuffRepo(); 

IEnumerable<Stuff> stuff = repo.Query(s => s.SomeProperty == "Foo"); 

표현, 또는 필터 : 자세한 내용은 당신이 구체적인 저장소 구현을 생성했던 가정, 당신은 너무 같은 이러한 방법 부를 것이다 http://msdn.microsoft.com/en-us/library/bb397687.aspx

1

좀 걸릴 수 있습니다 함수 (Func)는 T (내 예제에서는 별칭 "s"로 표시된 항목)을 사용하고 부울을 반환합니다. 따라서 SQL에서 :

select * 
from stuff s 
where s.SomeProperty = "Foo" 
관련 문제