2

入力する必要がありList<string>ますが、クエリが null 値を返す場合、このリストに空の文字列は作成されません。

var maskObj = (from m in context.sistema_DocType_Index
               join n in context.sistema_Indexes on m.indexId equals n.id
               where m.id == docTypeId
               select new maskModel
               {
                    mask = n.mask
               }).ToList();


return Content(""+maskObj.Count());

このクエリが 3 行を返し、そのすべてが である場合NULL、リストには 3 つの空の文字列が必要です。これを達成する方法はありますか?

Sql Server の場合、NULL は価値がないことを理解しています。NULL == NULL でさえ false を返します。

4

2 に答える 2

6

次のようなものが欲しいと思います:

mask = n.mask ?? string.Empty

これはnull 合体演算子を使用してstring.Emptyif n.maskis null を使用します。

エンティティ フレームワークによって生成される SQL は、次のようになります。

COALESCE(MASK, '')

私の答えは、 「このクエリが 3 行を返し、すべてが NULL の場合」と言うときのことを話していることを前提としていmaskます。null

于 2013-02-04T16:17:00.067 に答える
-1

クエリに別の where 句を追加します。

.Where(maskModel => !string.IsNullOrEmpty(maskModel));
于 2013-02-04T16:18:43.317 に答える