C# c语言中的oData查询#

C# c语言中的oData查询#,c#,linq,odata,C#,Linq,Odata,我对odata和c#都是新手,我不知道如何像下面这样翻译URI查询: ?$expand=订单详细信息 在c#中,使用linq方法语法 我试着这样做: var customer = context.Customers.Where( x => x.Id == 10 ).First(); foreach(var order in customer.Orders.Expand("Order_Details")){ //stuff } 但是customer.Orders没有“扩展”方法。

我对odata和c#都是新手,我不知道如何像下面这样翻译URI查询:

?$expand=订单详细信息

在c#中,使用linq方法语法

我试着这样做:

var customer = context.Customers.Where( x => x.Id == 10 ).First();

foreach(var order in customer.Orders.Expand("Order_Details")){
    //stuff
}
但是customer.Orders没有“扩展”方法。
如果必须展开连接到特定实体的导航属性,如何处理这些查询

作为OData查询本身的一部分,您必须请求所需的所有子属性

试着跟随

context.Customers.Expand("Orders/Order_Details").Where(c => x => c.Id == 10 ).First();
foreach(var order in customer.Orders){
    //stuff
}

作为OData查询本身的一部分,您必须请求所需的所有子属性

试着跟随

context.Customers.Expand("Orders/Order_Details").Where(c => x => c.Id == 10 ).First();
foreach(var order in customer.Orders){
    //stuff
}

作为OData查询本身的一部分,您必须请求所需的所有子属性

试着跟随

context.Customers.Expand("Orders/Order_Details").Where(c => x => c.Id == 10 ).First();
foreach(var order in customer.Orders){
    //stuff
}

作为OData查询本身的一部分,您必须请求所需的所有子属性

试着跟随

context.Customers.Expand("Orders/Order_Details").Where(c => x => c.Id == 10 ).First();
foreach(var order in customer.Orders){
    //stuff
}

首先,您的代码无法编译
x=>c.Id==10
是错误的;还有一个关于你的foreach missing的结束语。 其次,要做到这一点,您需要在客户变量中包含订单

我正在使用Northwind v3服务来演示这个()以及LinqPad(www.LinqPad.net)

这将导致类似以下URL调用:

http://services.odata.org/V3/Northwind/Northwind.svc/Customers('ALFKI')?$expand=Orders/Order_Details
输出:

//编辑 根据下面的评论。如果不想查看customer表并展开orders和order_details,也可以这样做:

var orders = Orders.Expand("Order_Details")
                   .Where(o => o.CustomerID == "ALFKI").Dump();


首先,您的代码无法编译
x=>c.Id==10
是错误的;还有一个关于你的foreach missing的结束语。 其次,要做到这一点,您需要在客户变量中包含订单

我正在使用Northwind v3服务来演示这个()以及LinqPad(www.LinqPad.net)

这将导致类似以下URL调用:

http://services.odata.org/V3/Northwind/Northwind.svc/Customers('ALFKI')?$expand=Orders/Order_Details
输出:

//编辑 根据下面的评论。如果不想查看customer表并展开orders和order_details,也可以这样做:

var orders = Orders.Expand("Order_Details")
                   .Where(o => o.CustomerID == "ALFKI").Dump();


首先,您的代码无法编译
x=>c.Id==10
是错误的;还有一个关于你的foreach missing的结束语。 其次,要做到这一点,您需要在客户变量中包含订单

我正在使用Northwind v3服务来演示这个()以及LinqPad(www.LinqPad.net)

这将导致类似以下URL调用:

http://services.odata.org/V3/Northwind/Northwind.svc/Customers('ALFKI')?$expand=Orders/Order_Details
输出:

//编辑 根据下面的评论。如果不想查看customer表并展开orders和order_details,也可以这样做:

var orders = Orders.Expand("Order_Details")
                   .Where(o => o.CustomerID == "ALFKI").Dump();


首先,您的代码无法编译
x=>c.Id==10
是错误的;还有一个关于你的foreach missing的结束语。 其次,要做到这一点,您需要在客户变量中包含订单

我正在使用Northwind v3服务来演示这个()以及LinqPad(www.LinqPad.net)

这将导致类似以下URL调用:

http://services.odata.org/V3/Northwind/Northwind.svc/Customers('ALFKI')?$expand=Orders/Order_Details
输出:

//编辑 根据下面的评论。如果不想查看customer表并展开orders和order_details,也可以这样做:

var orders = Orders.Expand("Order_Details")
                   .Where(o => o.CustomerID == "ALFKI").Dump();



添加:
使用System.Data.Services.Client。问题是我实际上可以对客户使用Expand方法:
var orders=context.Customers.Expand(“orders”)
是正确的,但这会导致以下查询:
http://services.odata.org/Nortwind/Northwind.svc/Customers?$expand=Orders
使用System.Data.Services.Client添加:
。问题是我实际上可以对客户使用Expand方法:
var orders=context.Customers.Expand(“orders”)
是正确的,但这会导致以下查询:
http://services.odata.org/Nortwind/Northwind.svc/Customers?$expand=Orders
使用System.Data.Services.Client添加:
。问题是我实际上可以对客户使用Expand方法:
var orders=context.Customers.Expand(“orders”)
是正确的,但这会导致以下查询:
http://services.odata.org/Nortwind/Northwind.svc/Customers?$expand=Orders
使用System.Data.Services.Client添加:
。问题是我实际上可以对客户使用Expand方法:
var orders=context.Customers.Expand(“orders”)
是正确的,但这会导致以下查询:
http://services.odata.org/Nortwind/Northwind.svc/Customers?$expand=订单
谢谢。很抱歉出现语法错误,但我没有粘贴代码。在我刚刚编写的示例中,它是有效的,但在我的示例中不起作用(northwind只是一个类似的示例)。如果我不想扩大客户,但我只需要订单和订单详细信息,该怎么办?通过您编写的查询,我们将获得与客户数据内联的订单和订单详细信息,而不是:
http://services.odata.org/V3/Northwind/Northwind.svc/Customers('ALFKI')/Orders?$expand=Order_Details
我们只得到了“需要的”信息。我的例子就是基于你的案例,因为您在customer->order->orderdetail中使用了相同的方法。我只是想演示一下它是如何基本工作的。当然,这很有帮助。但是你会如何用c语言转换我在前面的评论中写下的查询?(因此,不扩大客户,但扩大订单)谢谢。很抱歉出现语法错误,但我没有粘贴代码。在我刚刚编写的示例中,它是有效的,但在我的示例中不起作用(northwind只是一个类似的示例)。如果我不想扩大客户,但我只需要订单和订单详细信息,该怎么办?通过您编写的查询,我们将获得与客户数据内联的订单和订单详细信息,而不是:
http://services.odata.org/V3/Northwind/Northwind.svc/Customers('ALFKI')/Orders?$expand=Order\u Details
我们只得到了“需要的”信息。我的示例仅基于您的案例,因为