【发布时间】:2021-12-13 04:05:24
【问题描述】:
我有一个网格,其中显示了特定部门的代理列表。这些代理是发布房屋租赁列表的房地产代理。
网格显示AgentName、NumberofActiveListings、NumberofSoldAndExpiredListings 等基本信息。
现在要求默认情况下,网格中的列表应根据活动列表按降序排序(NumberofActiveListings)。如果多个代理具有相同数量的活动列表,则将代理列表按NumberofSoldAndExpiredListings 降序排列。如果多个代理具有相同数量的NumberofActiveListings 和NumberofSoldAndExpiredListings,则代理列表应按Name 升序排列。
此外,用户可以单击网格上的单个列,数据将根据该列进行排序。
下面是保存最终结果的 DTO 类:
public class AgentResultDto
{
public int AgentId { get; set; }
public string AgentName { get; set; }
public int NumberofActiveListings { get; set; }
public int NumberofSoldAndExpiredListings { get; set; }
}
public class GridviewInput
{
public string SortingColumn { get; set; } //hold the column name user will click on to sort the data
//other params
}
public virtual async Task<AgentResultDto> GetAgents(GridviewInput model)
{
List<AgentResultDto> agents = new List<AgentResultDto>();
//logic to populate agent list
agents = agents.OrderBy(model.SortingColumn).ToList();
}
但在这里我很困惑如何指定条件,如果 NumberofActiveListings 相同,则按NumberofSoldAndExpiredListings 排序,如果NumberofSoldAndExpiredListings 相同,则按AgentName 升序排序。
谁能指导我按照逻辑顺序实现这个要求?
【问题讨论】:
标签: c# entity-framework linq entity-framework-6