0

我正在使用 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
    };
4

1 回答 1

0

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

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

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

from p in products
where p.ProductId.StartsWith("Pid")
select new Product
{
   ProductId = p.ProductId,
   Customers = p.Customers
};
于 2012-06-18T22:46:27.127 回答