linqpad查询连接odata中的两个实体

时间:2012-06-18 21:00:39

标签: linqpad

我正在使用linqpad。我有一个ODATA连接。这些实体在左窗格中列出了关系。有两个实体称为产品和客户。我必须从pid开始获取所有产品ID,并且所有客户的名称都以b开头。两者之间存在关系。产品是客户的孩子。我该怎么办?我两天都在努力,但无法弄明白。有人可以帮忙吗? 这是基本代码。我不知道该怎么做。

    from p in products
    where p.ProductId.StartsWith("Pid")
    from c in customers
    where c.Name.StartsWith("B")
    select new
    {
        p.Pid,
        c.Name
    };

1 个答案:

答案 0 :(得分:0)

请说明您希望两个实体之间的关系如何影响查询结果?您是否希望上述内容仅返回产品(ID以给定值开头),然后只返回那些名称以某个值开头的产品的客户?

遗憾的是,这种查询在OData中无法表达。您可以请求所有ID以特定值开头的产品以及所有相关客户。然后在客户端上过滤客户。

例如,这将为您提供ID以特定值开头的所有产品及其所有客户:

from p in products
where p.ProductId.StartsWith("Pid")
select new Product
{
   ProductId = p.ProductId,
   Customers = p.Customers
};