上次插入的自动增量ID使用ASP.NET MVC&实体框架

时间:2014-09-24 17:22:55

标签: c# asp.net-mvc entity-framework

在这里,我将为ID获取最后一次插入的自动增量Newstbl。但在正常情况下,我们可以通过DESCENDING ORDER& amp;得到第一条记录。

但是我在这里使用ASP.NET MVC&实体框架,我被困在那里。 NewsId是自动递增ID

我的代码:

public int GetLastInsertedId()
{
        return (from x in context.Newstbl
                orderby x.NewsId 'DESC' 
                select x)
}

2 个答案:

答案 0 :(得分:6)

如果您已正确设置EF映射,那么基本上当您插入新的NewsTbl对象时,只要您调用{{1},就应该可以使用自动递增的ID在你的背景上。

所以,如果你这样做:

.SaveChanges()

然后在调用using(YourEFContext ctx = new YourEFContext()) { NewsTbl news = new NewsTbl(); // set some properties here on "news"..... ctx.NewsTbl.Add(news); ctx.SaveChanges(); } 之后,您的.SaveChanges()对象实际上应该已经包含自动递增的news属性....所以我真的不明白你为什么这么做经历了尝试读出最后一次插入的自动增量ID的所有麻烦 - 它已经存在于您的对象中。

答案 1 :(得分:2)

你可以使用Linq Method Query语法获得这种方式:

public int GetLastInsertedId()
{
   return context.Newstbl.OrderByDescending(x=>x.NewsId).First().NewsId;

}

并使用查询表达式语法:

public int GetLastInsertedId()
{
  return (from x in context.Newstbl 
          select x).OrderByDescending(x=>x.NewsId).First().NewsId;
}