Tôi có một chức năng trong đó tôi lấy danh sách id và tôi cần trả lại danh sách khớp với mô tả được liên kết với id. Ví dụ:
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
}
Vì vậy, nếu tôi đang tự tạo sql cho điều này, tôi chỉ cần làm điều gì đó như sau (trong đó mệnh đề in chứa tất cả các giá trị trong đối số codeIds):
Select CodeId, Description FROM CodeTable WHERE CodeId IN ('1a','2b','3')
Trong Linq to Sql, tôi dường như không thể tìm thấy mệnh đề tương đương với mệnh đề "IN". Điều tốt nhất tôi tìm thấy cho đến nay (không hoạt động) là:
var foo = from codeData in channel.AsQueryable<CodeData>()
where codeData.CodeId == "1" || codeData.CodeId == "2"
select codeData;
Vấn đề là tôi không thể tạo động danh sách các mệnh đề "HOẶC" cho linq thành sql, vì chúng được đặt tại thời điểm biên dịch.
Làm cách nào để thực hiện mệnh đề where kiểm tra một cột nằm trong danh sách giá trị động bằng cách sử dụng Linq to Sql?