У меня есть клиент C # .NET Silverlight 3.0, на котором запущены службы RIA с моделью EF. Я пытаюсь настроить систему расширенного поиска на клиенте так, чтобы пользователь мог сказать, что я хочу, чтобы поле (свойство) "Foo1" имело значение "Bar1" и т. Д.
Я бы хотел использовать гибкий, динамичный подход, подобный этому . Проблема в том, что я не могу передать IQueryable в качестве параметра ServiceOperation или в качестве параметра службы домена. И.Е. Это не работает:
[ServiceOperation()]
public int GetFooCount(string category, IQueryable<Foo> search)
{
int fooCount;
if (search != null)
{
IQueryable<Foo> filteredFooSet = this.Context.FooSet.Intersect(search);
fooCount = (from foo in filteredFooSet
where foo.Category == category
select foo).Count();
}
else
{
fooCount = (from foo in this.Context.ContactSet
where foo.Category == category
select foo).Count();
}
return fooCount;
}
Может кто-нибудь предложить или способ заставить этот подход работать или альтернативный (лучший) подход? Целью является гибкий контроль поиска, который можно применять к более чем одному конкретному типу объекта.