【发布时间】:2016-06-20 18:26:28
【问题描述】:
我有一个对象,它返回 IQueryable,其中包含以下代码 sn-ps:
public string employeeId{get;set:}
public string employeeName {get;set:}
public IEnumerable<Role> userRoles {get;set:}
在“角色”模型下,我有以下 2 个属性:
public string roleDescription {get;set:}
public string roleNumber {get;set:}
这里的问题是我可以根据employeeId 和employeeName 进行排序,但不能基于roleDescription 和roleNumber,因为类型是IEnumerable。
【问题讨论】:
-
什么时候
userRoles大于另一个userRoles? -
@Servy。绝不。在这种情况下,我们可以假设所有人的角色编号相同,但角色描述因用户、管理员、作者等而异。
-
如果您无法定义哪个“大于”另一个,则无法对其进行排序。
-
@user3715379 你的意思是按first角色描述排序吗?
-
我只能假设您不允许更新设计,否则使用 IEnumerable 存储 SINGLE 值是相当愚蠢的。最好只使用自定义类型“角色”作为单个实体。现在,如果用户可以拥有多个角色,那就不同了,您需要为“角色”声明一个比较器
标签: c# asp.net-mvc linq sorting sql-order-by