如何使用LINQ获取唯一id列的最大值

时间:2011-12-18 02:26:54

标签: linq entity-framework entity-framework-4

如何使用LINQ以最简单的方式编写?

SELECT        MAX(Game_id) AS MaxValue
FROM          Dim_Game

4 个答案:

答案 0 :(得分:5)

尝试context.Dim_Games.Max(g => g.Game_id);

答案 1 :(得分:1)

如果您的列不可为空且查询结果为空,您将收到错误

  

“转换为值类型'System.Int32'失败,因为已实现   value为null。结果类型的泛型参数或查询   必须使用可以为空的类型。“

为避免错误,您应将列转换为可为空,并将结果与​​0合并。

int max=(surveys.Max(g =>( int?)g.SurveyID) ?? 0);

The cast to value type 'Int32' failed because the materialized value is null

中查看更多详情

答案 2 :(得分:0)

你也可以使用这样的存储过程:

 select ident_current('table_name')

答案 3 :(得分:0)

如果身份增量开启,您可以使用以下代码



Convert.ToInt32(_entities.Database.SqlQuery("SELECT IDENT_CURRENT('table') + IDENT_INCR('table')", new object[0]).FirstOrDefault())