Как я могу написать это самым простым способом, используя LINQ?
SELECT MAX(Game_id) AS MaxValue FROM Dim_Game
Попробуйте context.Dim_Games.Max(g => g.Game_id);
context.Dim_Games.Max(g => g.Game_id);
Если ваш столбец не обнуляем и результат вашего запроса пуст, вы получите ошибку
"Ошибка приведения к типу значения 'System.Int32', так как материализованное значение равно нулю.Либо универсальный параметр типа результата, либо запрос должен использовать тип, допускающий значение NULL. "
Чтобы избежать ошибки, необходимо преобразовать столбец в значение NULL, а результат объединить с 0.
int max=(surveys.Max(g =>( int?)g.SurveyID) ?? 0);
Подробнее см. В Ошибка приведения к типу значения 'Int32', поскольку материализованное значение равно нулю
Вы можете использовать следующий код, если приращение идентификатора включено
Convert.ToInt32(_entities.Database.SqlQuery("SELECT IDENT_CURRENT('table') + IDENT_INCR('table')", new object[0]).FirstOrDefault())
Вы также можете использовать хранимую процедуру следующим образом: