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