0

我有一个看起来像这样的查询:

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

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

我该如何重写它,以便当没有数据填充 MyModel 时,MyModel 不会返回 null?

4

1 回答 1

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 });
于 2012-10-15T21:10:50.773 回答