LINQ to SQLクエリに問題があります。サーバーから返されるデータがnullの可能性があります。クエリ内にifステートメントを設定しました。クエリはまだ例外をスローしています。オブジェクト参照がLINQ to SQLクエリ内のインスタンスに設定されていない
検索用語「場所」はnullの場合これは、私は場所によってフィルタリングする必要はありませんが、それは、私nullでない場合、クエリコード
var a = from b in db.branches
where (b.Location != null) ?
(
(Query.Location == null) ?
true :
//The following line causes the exception to be thrown
object.Equals(Query.Location.ToLower() , b.Location.ToLower())
) :
(
(Query.Location == null) ?
true :
false
)
select b;
のダウン短縮バージョンでありますエントリの一部がnullの場所を持つため、行の値がNULLかどうかを確認する必要があります。
私がコンペアラインに追加するまで、コードは正常に機能します。比較ラインに到達するには、Query.Locationとb.Locationの両方をnullにすることはできません。したがって、コードは失敗しません。
どのような問題が発生する可能性がありますか?
ありがとうございました。
EDIT
私ははObject.equalsから.toLowerを()削除した場合、クエリが正しく実行される、それも関係なく、クエリがであるものの場合に動作しないように管理し、その後呼び出します。
var a = from b in db.branches
where (b.Location != null) ?
(
(Query.Location == null) ?
true :
//The following line causes the exception to be thrown
object.Equals(Query.Location , b.Location)
) :
(
(Query.Location == null) ?
true :
false
)
select b;
を引き起こしていると考えているあなたは何の行を選択しないする必要がありますか? – abatishchev
'b.Location'がnullで、' Query.Location'がnullの場合、すべての行を選択する必要がありますか? – abatishchev
b.locationがnullで、query.locationが返されない場合、返さない b.locationがnullでquery.locationがnullの場合は、 – Midimatt