Actualy, 당신은이 기능과 같이 계산 전달하는 것을 :
bool anonymous_delagate#123(T entity)
{
return entity.IsMatch(a,b,c,d)
}
을하지만,이, 그이 개체에서 호출 정말 어떤 방법 IsMatch
알고 EF을 필요 의미한다. 지금 recomending에 대해 생각할 수있는
만 것은 어떤 종류를 사용하는 동적 표현 단조 -이 쿼리 dynamicaly을 만들 수 있습니다. 또는 다른 모양으로 디자인을 재 작업하십시오.
Actualy는 acomplish하는 몇 가지 단계가 필요 쉽고 일반적인 방법이있다.
- 고정 방법
IsMatch
을 만듭니다.
Expression<{your entity here}, bool>
을 직접 IsMatch
에서 반환하십시오.
- 패스가 좋아 : 당신이 지금 가지고있는
({your entity here}.IsMatch({parameters}))
나머지는 동일하게 유지 할 수 있습니다.
편집 : 예 이 특정 단체와 함께 작동합니다, 그래서 당신의 엔티티가 주문입니다 asume 것입니다. 자신의 실체를 대체합니다.
public static Expression<Func<Order, bool>> IsMatch(int id, ...) // static method, that returns filtering expression
{
return i => i.Id == id; // create the filtering criteria
}
그런 다음 원하는 전화 :
count(some_guid, Order.IsMatch(entityId, inviterId, routeId, luggageTypeId));
필터 란 무엇입니까? – SLaks
@ SLaks ♦ : 죄송합니다. 질문을 isMatch 대리인으로 업데이트했습니다. – Naor