使用复合的ado.net-data-services文件管理器

时间:2010-05-04 17:16:04

标签: wcf-data-services

我在过滤查询时遇到问题。

我有一个联系人和一个标签实体,它们有多对多的关系。实际上在数据库中,它们是3个不同的表,Contacts,Tags和ContactTag表。我想使用标记名称来过滤联系人。

我正在尝试使用此过滤器,但它无效。 http://localhost:50143/ContactDataService.svc/Contacts?$ filter = Tags / TagName eq'Tag1'

我错过了什么吗?

由于 Thurein

1 个答案:

答案 0 :(得分:0)

您目前无法在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的服务操作,并返回具有该标记的客户列表。

-Jeff