คำตอบที่ดีน่ารัก แต่อย่าลืมสิ่งสำคัญอย่างหนึ่งนั่นคือให้ผลลัพธ์ที่แตกต่างกัน!
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();
สิ่งนี้จะส่งคืน 2 แถวจาก DB (ซึ่งอาจถูกต้องหากคุณต้องการเพียงรายชื่อผู้ใช้ที่แยกจากกัน)
แต่ในหลาย ๆ กรณีคุณอาจต้องการรายการผลลัพธ์ที่ไม่เรียงลำดับ คุณต้องคิดเสมอเกี่ยวกับแบบสอบถาม 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();
สิ่งนี้จะแสดงผลลัพธ์5 รายการจาก DB การใช้ "มี" จะไม่ถูกต้องในกรณีนี้