オブジェクトを、DB の Indexes というテーブルに格納されている他のオブジェクトと比較する必要があるとします。X
文字列であるオブジェクトのプロパティで比較する必要がありますが、 null
.
また、比較する前に、比較対象の X プロパティをトリミングする必要があります。私は次のことをしようとしました:
List<Guid> Ids = DataContext.Indexes.Where(ci =>
(comparedObject.X != null && ci.X != null ?
ci.X == comparedObject.X.Trim() :
(ci.X == null || ci.X == string.Empty) && (comparedObject.X == null || comparedObject.X == string.Empty))).Select(ci => ci.Id).ToList();
そして、それcomparedObjects.X
はnull
まだ式のヌル参照例外をスローしますcomparedObject.X.Trim()
。
私はそれがlinq変換のために起こると思いますか?
クエリの前に null の場合に空の文字列X
を割り当てることなく、プロパティをトリミングするよりきれいな方法はありますか?comparedObject.X
編集:詳しく説明したいと思います-このクエリは、ここでは簡単にするために縮小されました。他の約6つのプロパティも比較しています。X
これを 1 つのクエリにまとめ、プロパティだけが異なる 2 つのクエリに分けないようにしたいと思います。クエリの外側をトリミングすることが私の現在の解決策です。何かある場合に備えて、ステートメント内の解決策を望んでいました:)
ありがとう!