C# 如何指定列可为null的where子句
我有一个类似blow的样品台 [id][Name][DeleteFlg]C# 如何指定列可为null的where子句,c#,linq,entity-framework,linq-to-sql,C#,Linq,Entity Framework,Linq To Sql,我有一个类似blow的样品台 [id][Name][DeleteFlg] 1苹果零 2柠檬真 3葡萄假 我想在Linq中选择下面的SQL select * from Sample where DeleteFlg != True 但是,这不会返回任何结果(ret.Count=0) 如何使用DeleteFlg选择除Lemon之外的其他选项?您可能缺少空检查(因为您正在使用EF) 应该选择DeleteFlg为NULL或DeleteFlg等于false的条目。您的查询返回一行,其中Name='Grap
1苹果零
2柠檬真
3葡萄假 我想在Linq中选择下面的SQL
select *
from Sample
where DeleteFlg != True
但是,这不会返回任何结果(ret.Count=0)
如何使用DeleteFlg选择除Lemon之外的其他选项?您可能缺少空检查(因为您正在使用EF)
应该选择DeleteFlg为NULL或DeleteFlg等于false的条目。您的查询返回一行,其中Name='Grape'。 因此,如果使用相同的结果处理linq查询,则需要此查询:
var ret = (
from f in db.Sample
where f.DeleteFlg.HasValue && !f.DeleteFlg.Value
select new {Name = f.Name}
).ToList();
或
这两个linq表达式返回列表中的一项。正确的解决方案需要在where子句中加一个| |,如所选答案所示,您的解决方案将再次导致正确的结果请在问题中提供更多详细信息,以确保您所期望的内容清晰明了,我在我的答案中显示,对于IEnumerable(Linq到对象),当前查询将完美运行fine@MrinalKamboj我提供的SQL查询和其他ppl已经足够理解了。如果您已经做了足够的解释,那么我如何能够使您的Linq查询按预期工作,指出该程序中的问题,它正在产生预期的结果result@MrinalKamboj如果我解释得不够充分,为什么两个人可以给我一个回答我想知道的?
where !f.DeleteFlg.HasValue || !f.DeleteFlg.Value
var ret = (
from f in db.Sample
where f.DeleteFlg.HasValue && !f.DeleteFlg.Value
select new {Name = f.Name}
).ToList();
var ret = db.Sample.Where(f => f.DeleteFlag.HasValue && !f.DeleteFlag.Value).ToList();