0

次のようなクエリがあります。

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

場合によってはwhere、クエリの句がデータを返さないことがありますselect。これが発生すると、MyModelnull になります。for every プロパティを使用しても、クエリが0 に設定され?? 0たオブジェクトを返すことを期待していました。Property1

MyModel を満たすデータが存在しない場合に MyModel が null に戻らないように、これを書き直すにはどうすればよいですか?

4

1 に答える 1

1

選択するものが何もない場合、MyModel は作成されません。TheQuery は空の IEnumerable になります。

null オブジェクトのリストを取得している場合、何が起こっているのかわかりません。それがどのように可能かはわかりません。

次のように、クエリに結果があるかどうかを確認できます。

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 に答える