在这里,我将为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)
}
答案 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;
}