【发布时间】:2021-09-19 21:22:55
【问题描述】:
我在对 IQueryable 变量中的数据进行排序时遇到问题。
我的代码不是英文的,所以我将模拟重要的代码。
我的Order 类有一个OrderState 类的实例,我的OrderState 类有一个State 类的实例。
public class Order
{
public virtual ICollection<OrderState> OrderState { get; set; }
}
public class OrderState
{
public int OrderStateId { get; set; }
public int OrderId { get; set; }
public int UserId { get; set; }
public virtual ICollection<State> State { get; set; }
}
public partial class State
{
public string Name{ get; set; }
}
在我的 API 服务类中,我想创建包含所有订单的列表,但每个订单仅上次创建 OrderState 类实例。我知道如何获取所有数据,但难以将 Orderstate 列表属性排序为只获取相关的OrderState。我需要使用IQueryable 列表。
这是我的 API 代码:
var query = _context.Set<Database.Order>().AsQueryable();
if (search.UserId != 0)
{
query = query.Where(x => x.UserId == search.UserId);
}
if (search.OrderId != 0)
{
query = query.Where(x => x.OrderId == search.OrderId);
}
if (search.LoadCurrentOrderState)
{
// I don't know how to sort by orderstate desc and take only first item
query = query.Include("OrderState").Include("OrderState.State");
}
var entities = query.ToList();
return _mapper.Map<List<Model.Order>>(entities);
感谢任何帮助!
感谢您的宝贵时间
【问题讨论】:
-
您使用的是 EF 还是 EF Core?指定确切的版本。
-
EF Core v5.0.5 , .net core 3.1 @AlexanderPetrov
标签: .net entity-framework entity-framework-core iqueryable