linq返回对象,即使为null

时间:2012-10-15 21:05:55

标签: c# linq-to-sql

我有一个如下所示的查询:

var TheQuery = (from t in MyDC.Table
                where....
                select new MyModel()
                {
                    Property1 = (int?)... ?? 0
                }

有时,查询中的where子句不会返回select的数据。发生这种情况时,MyModel为空。我希望对于每个属性使用?? 0,查询仍会返回Property1设置为0的对象。

如何重写这个以便当没有数据来填充MyModel时,MyModel不会返回null?

1 个答案:

答案 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 });