Я использую Ria Service domainservice для запроса данных.
В моей базе данных есть таблица Люди с именем, фамилией. Затем я использую сервисы EF / RIA для обработки данных.
Затем я создаю Фильтр ViewModel для захвата пользовательских входных данных, на основе этого ввода я создаю запрос Linq для доступа к данным.
На стороне сервера запрос DomainService для человека по умолчанию:
public IQueryable<Person> GetPerson()
{
return this.Context.Person;
}
На стороне клиента запрос linq для фильтра выглядит примерно так (я использую здесь функцию Contains):
if (!String.IsNullOrEmpty(this.LastName))
q = q.Where(p => (p.LastName.Contains(this.LastName)));
Сгенерированный запрос linq выглядит примерно так (при отладке я его получил):
MyData.Person[].Where(p => (p.LastName.Contains(value(MyViewModel.PersonFilterVM).LastName) || p.Person.LegalLastName.Contains(value(MyViewModel.PersonFilterVM).LastName)))
Когда я запускаю приложение, я ставлю «Смит» для фамилии для поиска, но результат совершенно не имеет значения для «Смита»!
Как это исправить?