Asp.net core 整个集合的OData属性计数
我有一个asp.net core 3.2 api,它使用ef core和OData将数据返回到客户端 我需要能够返回对象列表中扩展的一对一属性的计数以及父对象列表。由于我正在分页结果,Asp.net core 整个集合的OData属性计数,asp.net-core,odata,Asp.net Core,Odata,我有一个asp.net core 3.2 api,它使用ef core和OData将数据返回到客户端 我需要能够返回对象列表中扩展的一对一属性的计数以及父对象列表。由于我正在分页结果,@odata.count表示数据库中符合条件的记录数,而不是它实际返回的记录数 为了解释,让我们假设我们有两门课 公共类秩序 { 公共int Id{get;set;} 公共字符串名称{get;set;} 公共客户客户{get;set;} } 公共类客户 { 公共int Id{get;set;} 公共字符串名称{ge
@odata.count
表示数据库中符合条件的记录数,而不是它实际返回的记录数
为了解释,让我们假设我们有两门课
公共类秩序
{
公共int Id{get;set;}
公共字符串名称{get;set;}
公共客户客户{get;set;}
}
公共类客户
{
公共int Id{get;set;}
公共字符串名称{get;set;}
公共ICollection命令{get;set;}
}
现在我看到了其他Stackoverflow Q&A,它将返回客户
内的订单数
但是我需要返回一个订单列表
,在扩展客户
时,我需要知道客户
在订单列表中出现了多少次
提供一些上下文来解释我为什么需要它,是因为我正在构建一个如下所示的列表过滤器表单。然后,用户可以单击复选框以按客户筛选列表
将此查询用于初学者:
https://localhost:5001/odata/Orders?$count=true&$expand=Customer&$filter=Some criteria&$top=7&$skip=0
因此,理想的结果是:
{
“@odata.context”:”https://localhost:5001/odata/$metadata#订单(Customer())“,
“@odata.count”:20,//数据库中符合条件的订单计数
“价值”:[
{
“Id”:1,
“名称”:“订单1”,
“客户”:{
“@odata.count”:6,//这是我需要的客户数量,这些客户的订单符合数据库中的条件
“Id”:1,
“名称”:“Contoso”
}
},
{
“Id”:2,
“名称”:“订单2”,
“客户”:{
“@odata.count”:6,
“Id”:1,
“名称”:“Contoso”
}
},
{
“Id”:3,
“名称”:“订单3”,
“客户”:{
“@odata.count”:6,
“Id”:1,
“名称”:“Contoso”
}
},
{
“Id”:4,
“名称”:“订单4”,
“客户”:{
“@odata.count”:4,
“Id”:2,
“名称”:“Acme”
}
},
{
“Id”:5,
“名称”:“订单5”,
“客户”:{
“@odata.count”:4,
“Id”:2,
“名称”:“Acme”
}
},
{
“Id”:6,
“名称”:“订单6”,
“客户”:{
“@odata.count”:10,
“Id”:3,
“名称”:“富吧公司”
}
},
{
“Id”:7,
“名称”:“订单7”,
“客户”:{
“@odata.count”:10,
“Id”:3,
“名称”:“富吧公司”
}
}
]
}