C# 即使为空,linq也会返回对象
我有一个如下的查询:C# 即使为空,linq也会返回对象,c#,linq-to-sql,C#,Linq To Sql,我有一个如下的查询: var TheQuery = (from t in MyDC.Table where.... select new MyModel() { Property1 = (int?)... ?? 0 } var TheQuery = from t in MyDC.Table wh
var TheQuery = (from t in MyDC.Table
where....
select new MyModel()
{
Property1 = (int?)... ?? 0
}
var TheQuery = from t in MyDC.Table
where....
select new MyModel()
{
Property1 = (int?)... ?? 0
}
var after = TheQuery.Any() ?
TheQuery :
Enumerable.Range(0, 1).Select(k => new MyModel() { Property1 = 0 });
有时,查询中的where
子句不返回执行select
的数据。发生这种情况时,MyModel
为空。我希望通过??0
对于每个属性,查询仍将返回Property1
设置为0的对象
如何重写它,以便在没有数据填充MyModel时,MyModel不会返回空值?如果没有可选择的内容,则不会创建MyModel。查询将是一个空IEnumerable 如果您得到一个空对象列表,我不确定会发生什么。我不确定这怎么可能 您可以检查您的查询是否有如下结果:
var TheQuery = (from t in MyDC.Table
where....
select new MyModel()
{
Property1 = (int?)... ?? 0
}
var TheQuery = from t in MyDC.Table
where....
select new MyModel()
{
Property1 = (int?)... ?? 0
}
var after = TheQuery.Any() ?
TheQuery :
Enumerable.Range(0, 1).Select(k => new MyModel() { Property1 = 0 });
你不能核对一下计数吗。例如query.ToList().count不要这样做,请使用.Any(),这样它就不必实际计算整个列表。