使用lambda表达式获取下一个主键ID

时间:2013-12-15 18:34:10

标签: entity-framework

我正在使用Entity Framework 5,我需要在表格中获得下一个id

1
2
3
4

我想得到下一个id,当我的id为1时想要获得下一个id 2

public class Level
{
    [Key]
    public int LevelID { get; set; }
    public string Name { get; set; }
    public double Cost { get; set; }
    public int Statue { get; set; }
    public int CourseID { get; set; }
    public int? SessionCount { get; set; }
    public int? SessionAttend { get; set; }
    public DateTime? DateAdded { get; set; }
    public Guid UserAddID { get; set; }
    public Guid userEditID { get; set; }
    public DateTime DateUpdated { get; set; }
    public bool DelFlag { get; set; }
    public DateTime? DelDate { get; set; }
    public Guid? UserDelID { get; set; }

}

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

要获得为新行分配的下一个LevelId,您可以使用它:

var nextId = db.Levels.OrderBy(x => x.LevelId).Last().LevelId + 1;

我可能不会推荐这个。整个想法给我带来了糟糕的代码味道。

答案 1 :(得分:0)

public int getNextId(int id)
{
  var nextEntities = repository.Query<Levels>().OrderBy(d=>d.LevelId)
  .Where(l=>l.LevelId>id)
  .Take(1).SingleOrDefault();
  return  nextEntities != null ? nextEntities.LevelId : ++id; //or return 0 on your choice
}