C# 如何将DBNull检查到linq或int32中?
我想获取C# 如何将DBNull检查到linq或int32中?,c#,wpf,asp.net-mvc,linq,C#,Wpf,Asp.net Mvc,Linq,我想获取CategoryId为null的所有行。我写了下面的代码,但它给了我错误 运算符“==”不能应用于“int”类型的操作数,并且 System.DBNull 公共可空类别ID{get;set;} 游戏对象; var query=(来自db.GameByGameTypes.Where中的gametypebygametype(x=>x.CategoryId==DBNull.Value) 加入游戏中的db.Games 在gametypebygametype.GameId上等于game.GameI
CategoryId
为null
的所有行。我写了下面的代码,但它给了我错误
运算符“==”不能应用于“int”类型的操作数,并且
System.DBNull
公共可空类别ID{get;set;}
游戏对象;
var query=(来自db.GameByGameTypes.Where中的gametypebygametype(x=>x.CategoryId==DBNull.Value)
加入游戏中的db.Games
在gametypebygametype.GameId上等于game.GameId
从joined.DefaultIfEmpty()中的游戏
选择新的
{
game.GameId,
game.GameName
}
).Distinct();
List objlistGame=新列表();
foreach(查询中的变量项_temp)
{
objGame=新游戏();
objGame.GameId=项目\临时GameId;
objGame.GameName=项目\临时GameName;
添加(objGame);
}
如果要获取CategoryId
为null
的所有行,请尝试使用null
而不是DBNull.Value
,或者HasValue=false,然后只需检查是否为null分配了值:
db.GameByGameTypes.Where(x => !x.CategoryId.HasValue)
您需要修改WHERE
子句并将其用作:
从
也许你需要x.CategoryId.HasValue==false
这不是你遇到问题的LINQ部分,而是Nullable
@V4Vendetta感谢它为我所做的工作。
db.GameByGameTypes.Where(x => !x.CategoryId.HasValue)
.Where(x => !x.CategoryId.HasValue)
.Where(x => x.CategoryId == DBNull.Value)