如何在WCF中提供DISTINCT功能

时间:2011-10-10 04:47:53

标签: asp.net entity-framework distinct wcf-data-services

我在EF(老式edmx;不是代码优先)之上有WCF数据服务,它有数百万行数据。我将结果集限制为500行。到目前为止,太棒了!

我想让消费者能够“钻取”数据。理想情况下,消费者代码会运行select distinct Province from我的服务,用户会选择状态,然后代码会运行select distinct Zip where Province == p(我的业务领域非常不同,但希望你能得到图片!)。< / p>

显然,我无法获得所有内容并在客户端运行明显。我如何在服务中提供此功能?我没有在服务中公开EntitySet“Provinces”或“Zips”。我应该扩展MyEntities类,并尝试在那里模拟那些集合吗?或者是否有更简单的方法来公开其他集合,除了那些从Entity Framework自动公开的集合?

我希望这个问题有道理......

更新:当我提到我正在使用WCF服务时,我认为我引起了混乱。我实际上正在使用WCF Data 服务尝试在Entity Framework 4.1上提供OData包装器。希望这能澄清这个问题......

1 个答案:

答案 0 :(得分:0)

你是否考虑过放弃你所谓的专有性和标准?

很容易从.NET公开ODATA并允许用户向下钻取。所有你需要的是一些转换来暴露像省或Zip这样的元素,就像在一个理智的数据模型中那样你去;)

关于OData的好处是,它允许您轻松地将LINQ传递到后端并进行预测(从客户名称以“a”开头的客户处获取所有产品)并且不必处理强制实体。