나는 일종의 저장소 역할을하는 클래스를 가지고 있으며 데이터베이스에 대한 액세스 권한을 부여합니다. 표현식을 사용하여 쿼리를 허용하도록 사용자 정의하려고합니다.Expression의 내용을 읽으려면 어떻게해야합니까?
그래서, 나는이 작업을 수행 할 수 있도록하려면 :
IList<MyClass> myList = myRepository.GetBy(x => x.Name == "SomeName");
//and...
IList<MyClass> myList2 = myRepository.GetBy(x => x.Name == "SomeName" && x.ID = 5);
이 내가 저장소 기능을 가질 필요가 무엇 :
public IList<T> GetBy(Expression<Func<T, bool>> expression)
{
//Set up the query, etc
//I'm at the WHERE clause, and I need to get the property(ies) name(s) of the expression and their values to properly set the WHERE
}
내가 어떻게 할 수 있습니까?
http://msdn.microsoft.com/en-us/library/bb882521(v=vs.90).aspx – MarcinJuraszek
당신이 일을 중지 무엇 'blah. 어디에서 (expression.Compile())'? – DavidG
@DavidG 비효율적입니다. 'Compile'은 델리게이트를 반환하므로 데이터베이스로부터 모든 객체를 가져온 후에 서버 측에서 예측이 적용됩니다. 왜 '쿼리 가능'을 사용하지 않는지 묻습니다.어디에서 (표현식); ' –