我正在使用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
};
答案 0 :(得分:0)
请说明您希望两个实体之间的关系如何影响查询结果?您是否希望上述内容仅返回产品(ID以给定值开头),然后只返回那些名称以某个值开头的产品的客户?
遗憾的是,这种查询在OData中无法表达。您可以请求所有ID以特定值开头的产品以及所有相关客户。然后在客户端上过滤客户。
例如,这将为您提供ID以特定值开头的所有产品及其所有客户:
from p in products
where p.ProductId.StartsWith("Pid")
select new Product
{
ProductId = p.ProductId,
Customers = p.Customers
};