내 결과를 필터링하는 Silverlight 앱 (RIA 서비스 포함)에 몇 가지 문제가 있습니다. 아이디어는 클라이언트에서 EntityQuery와 필터 및 호출로드를 설정합니다. 그러나 이것은 나를 위해 작동하지 않습니다.Linq를 사용하여 자녀가 부모를 필터링
Heres my code.
public void FireQuery(string filterValue)
{
EntityQuery<Parent> query = m_ParentDomainContext.GetParentQuery();
query = query.Where(p => p.Children.Any(c => c.Name.Contains(filterValue)));
m_ParentDomainContext.Load(query, Query_Completed, null);
}
컴파일러는 정상적으로 작동하지만 런타임에는 '쿼리 연산자'모두 '가 지원되지 않습니다. " 예외. 누구나 이와 같은 필터링 방법을 알고 있습니까? 다시 말하지만, 저는 이것을 클라이언트에서 설정하는 방법을 찾고 있습니다.
편집 : 나는 비슷한 결과로,뿐만 아니라 몇 가지 다른 쿼리를 시도했습니다주의해야합니다
query = query.Where(p => p.Children.Where(c => c.Name.Contains(filterValue)).Count() != 0);
query = query.Where(p => p.Children.Where(c => c.Name.Contains(filterValue)).FirstOrDefault != null);
query = query.Where(p => p.Children.Where(c => c.Name.Contains(filterValue)).Any());
쿼리 연산자 '카운트/FirstOrDefault/모든'지원되지 않습니다. 나는 분명히 뭔가를 여기에서 놓치고있다. ...
내가 RIA 서비스에 대해 잘 모르는 도움이되기를 바랍니다,하지만 난이 서버로 전송 될 수 있도록이 쿼리를 표현하는 방법이 없기 때문에 그것은 생각합니다. 아마도 서버에서 쿼리를 생성하여 클라이언트에 공개 할 수 있습니까? –
제가 할 수는 있지만 문제는 제가 적용하고자하는 여러 개의 필터가있을 수도 있고 없을 수도 있다는 것입니다. 위의 작업을 수행하면 클라이언트에서 필터를 동적으로 적용 할 수 있습니다. 서버에 필터의 변수 목록을 보내시겠습니까? 나는 그것이 순조롭게 진행될 것이라고 확신하지 못한다. –
학부모 클래스의 정의를 가르쳐 주시겠습니까? – Schultz9999