いい答えは避けられますが、重要なことを忘れないでください-それらは異なる結果を提供します!
var idList = new int[1, 2, 2, 2, 2]; // same user is selected 4 times
var userProfiles = _dataContext.UserProfile.Where(e => idList.Contains(e)).ToList();
これにより、DBから2行が返されます(ユーザーの個別の並べ替えられたリストが必要な場合は、これが正しい場合もあります)。
しかし、多くの場合、ソートされていない結果のリストが必要になる可能性があります。SQLクエリと同じように常に考える必要があります。何が起こっているのかを説明するには、eshopショッピングカートの例をご覧ください。
var priceListIDs = new int[1, 2, 2, 2, 2]; // user has bought 4 times item ID 2
var shoppingCart = _dataContext.ShoppingCart
.Join(priceListIDs, sc => sc.PriceListID, pli => pli, (sc, pli) => sc)
.ToList();
これにより、DBから5つの結果が返されます。この場合、 'contains'を使用することは間違っています。