1

私は次のLINQを持っています:

        var items = from n in db.Roles
                    where n.importID == importID
                    select n;

「importID」はパラメータとしての文字列と文字列ですか?データベースオブジェクト用。データベースでimportIDがnullの場合、一致するものはありません。これを達成する方法は?

コンパイラメッセージ:

Operator '==' cannot be applied to operands of type 'string?' and 'string'

4

4 に答える 4

6

文字列は参照型であるため、すでに null 可能です (つまり、null に設定できます)。Nullable 型の唯一の目的は、値型 (integer、double など) を null に設定できるようにすることです。修正は、 ではなくimportIdとして宣言することです。stringstring?

于 2012-09-18T08:23:25.613 に答える
4
var items = from n in db.Roles
            where n.importID.HasValue && n.importId.Value == importID
            select n;
于 2012-09-18T08:21:44.290 に答える
0

また、使用できます.GetValueOrDefault()

短いクエリでは...

var items = from n in db.Roles
                where n.importID == importID.GetValueOrDefault()
                select n;
于 2012-09-18T09:09:01.257 に答える
0
var items = from n in db.Roles
                    where !string.IsNullOrEmpty(n.importID) && n.importID == importID
                    select n;
于 2012-09-18T09:24:45.113 に答える