файл-сервис ado.net-data-services, использующий композит - PullRequest
0 голосов
/ 04 мая 2010

У меня проблема с фильтрацией запроса.

У меня есть объекты Contact и Tag, которые во многих отношениях. На самом деле в базе данных, это 3 разные таблицы, контакты, теги и таблицы контактов. Я хочу отфильтровать контакты по имени тега.

Я пробовал этот фильтр, но он не работал. http://localhost:50143/ContactDataService.svc/Contacts?$filter=Tags/TagName eq 'Tag1'

Я что-то пропустил?

Спасибо Thurein

1 Ответ

0 голосов
/ 06 мая 2010

В настоящее время вы не можете фильтровать коллекцию в WCF DataServices. Вы могли бы рассмотреть эти альтернативные решения:

1 - Запрос на фильтрацию тегов по TagName и расширение контактов

var q = context.Tags.Expand("Contacts").Where(t => t.TagName == "Tag1");
foreach (var contact in q.ToList().SelectMany(t => t.Contacts).Distinct())
{
    Console.WriteLine(contact.FirstName);
}

2 - добавить сервисную операцию, которая принимает TagName и возвращает список клиентов, у которых есть этот тег.

-Джефф

...