-3

null 可能なオブジェクトを取る List クラスの List クラスの Contains メソッドのような拡張メソッドを作成したいと考えています。誰かがこれで私を助けることができますか?

4

1 に答える 1

1

他の回答に対するコメントから、次のようなことをしようとしているようです

var myWantedIds = new List<int> { 1, 2, 3 };
var matchingItems = myEntityFrameworkItems
    .Where(efItem => myWantedIds.Contains(efItem.NullableIdProperty));

のオーバーロードを記述しContainsても、SQL に変換できないため、ここでは役に立ちません。

リストにnull以外のIDが含まれているかどうかを確認してください。

var myWantedIds = new List<int> { 1, 2, 3 };
var matchingItems = myEntityFrameworkItems
    .Where(efItem => efItem.NullableIdProperty.HasValue &&
                     myWantedIds.Contains(efItem.NullableIdProperty.Value));

それも変換されない場合は、検索リストを null 許容バージョンに変換することもできます。

var myWantedIds = new List<int> { 1, 2, 3 };
var myNullableIds = myWantedIds.Select(i => new int?(i)).ToList();
var matchingItems = myEntityFrameworkItems
    .Where(efItem => myNullableIds.Contains(efItem.NullableIdProperty));
于 2013-06-11T11:17:28.680 に答える