如何处理linq中的空值到实体

时间:2012-07-06 23:34:36

标签: linq-to-entities

如何在linq to entity语句中处理Max值的null?

int UserLevelID = db.Characters.Where(o => o.UserId == UserID).Max(o => o.LevelID);

2 个答案:

答案 0 :(得分:1)

当你说数数时,我不太清楚你的意思,因为你并不是指代码中的任何数字。如果您想知道如何处理null o.LevelID,您可以执行以下操作:

Max(o => o.LevelID ?? -1);

??是.NET中的合并运算符

更新

试试这个:

db.Characters.Where(o => o.UserId == UserID).Max(o => o == null ? 0 : o.LevelID);

答案 1 :(得分:0)

如果o.LevelID为null,您可以执行以下操作,将'IFNULLDEFAULTVALUE'替换为您想要的值:

int UserLevelID = db.Characters.Where(o => o.UserId == UserID).Max(o => (o.LevelID != null ? o.LevelID : IFNULLDEFAULTVALUE);