数据服务 - 按子值查找实体 - 仅检索某些属性
本文关键字:检索 属性 实体 查找 服务 数据 | 更新日期: 2023-09-27 18:35:48
我正在将 WCF 数据服务与实体框架 4.1 一起使用
我有 2 张表,具有多对多关系。我正在尝试获取基于子值的实体。
Table 1 (Suppliers) -> ID (PrimaryKey) ,Name ,isEnabled ,Timestamp
Table 2 (Categories) -> RGID (PrimaryKey) , Name, etc....
我试图像这样编写 URI。我的目标是检索所有具有RGID = 3的类别的供应商 - 名称和时间戳。
到目前为止我已经完成了
http://localhost/joybaservice/joybadataservice.svc/Categories(3)?$expand=Suppliers
现在,我的任务是选择所需的属性。名称 + 时间戳。
谢谢
使用$select查询选项。例如,使用展开在上面的查询中,假设我想从类别中获取 Name 属性,从供应商中获取名称属性,从供应商中获取时间戳属性。查询可能如下所示:
~/Categories(3)?$expand=Suppliers&$select=Name,Suppliers/Name,Suppliers/Timestamp
如果要在客户端上使用 LINQ(使用 WCF 数据服务客户端库)执行此操作,则不能使用 AddQueryOption 添加$select(或任何其他 $ 查询选项),而是需要使用 LINQ 表达查询的意图(毕竟这就是它的用途)。例如,上面的内容可能看起来像这样(但取决于您的类的布局)。
ctx.Categories
.Where(c => c.ID == 3)
.Select(c => new Category()
{
Name = c.Name,
Suppliers = c.Suppliers.Select(s => new Supplier()
{
Name = s.Name,
Timestamp = s.Timestamp
})
})