我有一个如下所示的查询:
var TheQuery = (from t in MyDC.Table
where....
select new MyModel()
{
Property1 = (int?)... ?? 0
}
有时,查询中的where
子句不会返回select
的数据。发生这种情况时,MyModel
为空。我希望对于每个属性使用?? 0
,查询仍会返回Property1
设置为0的对象。
如何重写这个以便当没有数据来填充MyModel时,MyModel不会返回null?
答案 0 :(得分:1)
如果没有要选择的内容,则不会创建任何MyModel。 TheQuery将是一个空的IEnumerable。
如果您要获取空对象列表,我不确定发生了什么。我不确定这是怎么可能的。
您可以检查查询是否有结果,如下所示:
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 });