我有一张名为“GRNHDReturn'在我的数据库中。当表为空时,我想从表中获取Max ReturnId。我怎么能这样做?
public string getMax()
{
GRNHDReturn grh = new GRNHDReturn();
int max = 0;
if ((context.GRNHDReturns.Max(p => p.ReturnId) == 0))
{
max = 1;
calculatemax = "RN" + max.ToString();
}
else
{
max = context.GRNHDReturns.Max(p => p.ReturnId);
int nextmax = max + 1;
calculatemax = "RN" + nextmax.ToString();
}
return calculatemax;
}
答案 0 :(得分:1)
您可以通过以下代码行完成所需的一切:
int max = 0;
max = context.GRNHDReturns.Select(p => p.ReturnId)
.DefaultIfEmpty().Max();
int nextmax = max + 1;
calculatemax = "RN" + nextmax.ToString();
return calculatemax;
如果没有记录,按DefaultIfEmpty()
告诉EF返回0
(int
的默认值)。
答案 1 :(得分:0)
public string getMax()
{
GRNHDReturn grh = new GRNHDReturn();
int? max = (from o in context.GRNHDReturns
select (int?)o.ReturnId).Max();
if (max == 0 || max == null)
{
max = 1;
calculatemax = "RN" + max.ToString();
}
else
{
int? nextmax = max + 1;
calculatemax = "RN" + nextmax.ToString();
}
return calculatemax;
}
你可以试试这个。