こんにちは私は、データベースに保存されている他のすべてのエンティティとオブジェクトを比較するlinqクエリを持っています。名と姓は必須フィールドなので、nullをチェックする必要はありません。しかし、通りの場合、私はこれらのチェックをしなければなりません。
両方のフィールドがnullまたは空の文字列であるか、同じであるかを照合したいと思います。以下のlinqクエリは正常に機能しています。
しかし、私はさまよっていましたが、それをより読みやすくする方法はありません。たとえば、Bool FieldsAreEqualOrBothNullOrEmpty(r.street、request.street)のようなカスタム関数を使用します
それを行う方法とそれが可能かどうかを理解することはできません。
var same =
from r in db.Requests
where r.firstName.ToLower() == request.firstName.ToLower()
&& r.lastName.ToLower() == request.lastName.ToLower()
//Seems long to just compare two fields
&& ( string.IsNullOrEmpty(r.street) && string.IsNullOrEmpty(request.street) )
|| r.street.ToLower() == request.street.ToLower()
select r;
return same;