Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何指定列可为null的where子句_C#_Linq_Entity Framework_Linq To Sql - Fatal编程技术网

C# 如何指定列可为null的where子句

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

我有一个类似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='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();