Asp.net 如何管理实体的顺序?如何在具有某个ID的实体之后或之前添加实体?
假设我有一个待办事项列表应用程序。您可以添加一些任务,将它们标记为“完成”,或将其上移或下移 托多利斯特:Asp.net 如何管理实体的顺序?如何在具有某个ID的实体之后或之前添加实体?,asp.net,entity-framework,Asp.net,Entity Framework,假设我有一个待办事项列表应用程序。您可以添加一些任务,将它们标记为“完成”,或将其上移或下移 托多利斯特: 任务1 任务2 任务3 任务4 现在我想添加一些新任务,比如说在Task1之后(因此它将位于第二位) 当我简单地_context.Tasks.Add()一个新的时,它将被保存为最后一个,因为EF不知道它应该是第二个 当然,我有一些函数,比如“.OrderBy()”,但是我应该使用什么值来进行排序呢?我如何告诉实体框架,将其作为数据库中的第二个 示例模型: public class Ta
- 任务1
- 任务2
- 任务3
- 任务4
public class TaskList
{
public TaskList()
{
Tasks = new HashSet<Task>();
}
public int ID {get; set;}
public virtual ICollection<Task> Tasks {get;set;}
}
public class Task
{
public int ID {get;set;}
public string Data {get;set;}
}
公共类任务列表
{
公共任务列表()
{
Tasks=newhashset();
}
公共int ID{get;set;}
公共虚拟ICollection任务{get;set;}
}
公开课任务
{
公共int ID{get;set;}
公共字符串数据{get;set;}
}
您应该创建一个“实际订单”列,以指示任务在列表中的顺序。这样,您可以更改任务的顺序,只需更新值即可。@jpgrassi我希望有更好的解决方案,但如果有必要,可以……不确定您正在寻找的更好的解决方案是什么。据我所知,您的任务列有一个自动递增Id,当您插入一个新的Id时,它会进入“列表”,但这是正确的行为。要控制任务的顺序,我看不到任何其他逻辑方法。如果您不想像建议的那样处理订单列,则必须手动分配Id,而不是自动递增