读书人

Linq Max()有关问题

发布时间: 2013-08-13 16:43:28 作者: rapoo

Linq Max()问题
本帖最后由 q107770540 于 2013-08-12 14:38:47 编辑


public int GetMaxID()
{
var id = Context.Sys_News.Max(s => s.ID);//第一种
var id = (from s in Context.Sys_News orderby s.ID descending select s.ID).First();//第二种
var id = Context.Sys_News.Select(s => s.ID).Max();//第三种

return id;
}

假设ID 为自增整型字段 上面方法为获取表中最大的ID,哪一种效率最高????
我觉得 第一种>第二种>第三种 你们觉得呢? LINQ Max EF
[解决办法]
var id = (from s in Context.Sys_News orderby s.ID descending select s.ID).DefalutORFirst();//第二种
[解决办法]
你的这个方法,使用的上下文是什么?
如果是在新增数据后,想得到刚新增的主键ID,完全没必要使用这个方法
直接这样即可:

Sys_News sn=new Sys_News();
sn.Name="test";
Context.Sys_News.InsertOnSubmit(sn);
Context.Sys_News.SaveChanges();
int id=sn.ID; //这个即是刚新增的主键ID


BTW: 从你的代码来看,第一种和第三种是一样的,一般情况下比第二种要快些,因为第二种加了orderby

读书人网 >.NET

热点推荐