给定以下实体类,它表示项目的链接列表中的项目,我们如何使用LINQ这些项目(按NextItemId
定义的顺序)进行排序,以便将查询转换为SQL和在数据库端完成?
public class Item
{
public virtual int Id { get; set; }
public virtual string Title { get; set; }
public virtual int? NextItemId { get; set; }
public virtual Item NextItem { get; set; }
}
答案 0 :(得分:0)
我不认为这是可能的。在我的系统中,我需要实现与此类似的功能,我使用索引varchar
字段来保持项目的完整路径,如
Id NextItemId ItemPath
1 2 /1
2 9 /1/2
9 13 /1/2/9
这样您就可以使用where ItemPath.StartsWith()
进行查询并使用索引。