C# 如何检查可空布尔值是否为非真?

C# 如何检查可空布尔值是否为非真?,c#,linq,entity-framework,C#,Linq,Entity Framework,嗯,现在我有了这个,但它又丑又长: var details = dc.SunriseShipment .Where(it => (it.isDeleted == null || it.isDeleted == false)); 有更好的方法吗?我试过“it.isDeleted!=true”和“it.isDeleted??false==false”,但它们不起作用。试试这个: .Where(it => !(it.isDeleted ?? fal

嗯,现在我有了这个,但它又丑又长:

        var details = dc.SunriseShipment
            .Where(it => (it.isDeleted == null || it.isDeleted == false));
有更好的方法吗?我试过“it.isDeleted!=true”和“it.isDeleted??false==false”,但它们不起作用。

试试这个:

.Where(it => !(it.isDeleted ?? false));

有一个GetValuerDefault方法,该方法在值为null时返回默认值:

var details = dc.SunriseShipment
.Where(it => !it.isDeleted.GetValueOrDefault(false));

“他们不工作”并没有告诉我们你观察到的和你期望的…@Jon Skeet:rowcount没有改变9秒,还不错:)
var details = dc.SunriseShipment
.Where(it => !it.isDeleted.GetValueOrDefault(false));