Entity framework 从实体框架捕获空值的好方法?

Entity framework 从实体框架捕获空值的好方法?,entity-framework,Entity Framework,现在我正在这样做,但我不太喜欢: decimal maxId = 0d; try { maxId = ent.SaveStates.Max(c => c.Id); } catch (Exception ex) //no entries in the db { maxId = 1; } 有没有更好的方法来处理实体框架数据库中的空值 这是: maxId = ent.SaveStates.Count() > 0 ? ent.SaveStates.Max(c => c.I

现在我正在这样做,但我不太喜欢:

decimal maxId = 0d; 
try
{
  maxId = ent.SaveStates.Max(c => c.Id);
}
catch (Exception ex) //no entries in the db
{
  maxId = 1; 
}
有没有更好的方法来处理实体框架数据库中的空值

这是:

maxId = ent.SaveStates.Count() > 0 ? ent.SaveStates.Max(c => c.Id) : null;

我认为这不会导致两个查询,但我会对其进行分析以确保。

虽然这不是一个答案,但我只想指出,建议避免捕获
异常。当您知道特定的异常类型是什么时,请使用特定的类型。假设我们在这里讨论的是Sql Server…打开Sql Server Management Studio,然后选择工具…Sql Server Profiler。像普通一样连接到db,并选择TSQL_SPs模板。完成此操作后,您将看到服务器上所有活动的调试视图。执行上面的语句,看看是执行了两条SELECT语句,还是只执行了一条(就像我想的那样)。探查器在查看ORM在封面下实际生成的内容方面非常有用。