Saya memiliki fungsi di mana saya mendapatkan daftar id, dan saya perlu mengembalikan daftar yang cocok dengan deskripsi yang terkait dengan id. Misalnya:
public class CodeData
{
string CodeId {get; set;}
string Description {get; set;}
}
public List<CodeData> GetCodeDescriptionList(List<string> codeIDs)
//Given the list of institution codes, return a list of CodeData
//having the given CodeIds
}
Jadi jika saya membuat sql untuk ini sendiri, saya hanya akan melakukan sesuatu seperti berikut (di mana klausa in berisi semua nilai dalam argumen codeIds):
Select CodeId, Description FROM CodeTable WHERE CodeId IN ('1a','2b','3')
Dalam Linq ke Sql saya tidak bisa menemukan padanan dari klausa "IN". Yang terbaik yang saya temukan sejauh ini (yang tidak berfungsi) adalah:
var foo = from codeData in channel.AsQueryable<CodeData>()
where codeData.CodeId == "1" || codeData.CodeId == "2"
select codeData;
Masalahnya, saya tidak dapat secara dinamis menghasilkan daftar klausa "ATAU" untuk linq ke sql, karena mereka disetel pada waktu kompilasi.
Bagaimana seseorang mencapai klausa where yang memeriksa kolom dalam daftar nilai dinamis menggunakan Linq ke Sql?