【发布时间】:2011-03-16 20:54:37
【问题描述】:
我正在尝试找出一种方法,让额外的数据与从 RIA 域服务返回的实体一起传递。
例如,假设我想为“订单”显示一个 DataGrid,并为订单中的总项目包括一列。
Order Num. | Cust. Name | *No. of Items Ordered*
4545 | John | 4
1234 | Mike | 7
在服务器端,我可以使用 Linq 查询:
var query =
from o in entities.Orders
select new OrderWithItemCount { Order = o, ItemCount = o.Items.Count() };
...这将一次性检索我的订单以及商品数量。
问题是,我无论如何都找不到通过域服务将这些结果传播到 Silverlight 客户端。我想我可以使用标准的 WCF 服务,但这样做有什么乐趣呢?
更新
原来是真正的问题...
我曾一度尝试过 Nissan Fan 和 Florian Lim 指出的“简单方法”。当我尝试它时,我没有得到我的所有数据。 (我还需要在查询中包含客户Person 以获取他们的姓名。)事实证明,我认为RIA 服务的限制实际上是EF 4.0 的限制,因为entities.Orders.Include("Customer") 不会如果您选择不是Order 的新类型,则可以使用。解决方法是在您的 select 语句中显式选择 o.Customer,EF 会自动将选定的 Person 连接到 Order 上的关联属性中。
【问题讨论】:
标签: silverlight wcf-ria-services