2010-08-16 39 views

Trả lời

59

Sử dụng Contains:

int[] ids = { 1, 2, 3, 4, 5}; 

var query = db.myTable.Where(item => ids.Contains(item.ID)); 

hoặc trong cú pháp truy vấn:

int[] ids = { 1, 2, 3, 4, 5}; 

var query = from item in db.myTable 
      where ids.Contains(item.ID) 
      select item; 
+0

Thanks a lot ... –

+0

@ Jon Skeet cảm ơn. Nhưng tôi có câu hỏi. Tôi tin rằng bạn có thể giải quyết điều đó. Đó là khi các id đang được tìm nạp từ một lược đồ bảng khác và chứa hàng triệu dữ liệu thì tôi không thể thực hiện điều này nhanh hơn. Nó đang chậm hơn để so sánh. Có phải suy nghĩ của tôi hoặc trình biên dịch cho thời gian chạy tối ưu hóa tốt nhất bằng cách quản lý lập chỉ mục nội bộ/một số thuật toán phức tạp khác? Xin hãy trả lời, tôi cần nó ngay bây giờ. –

+2

@MuhammadAshikuzzaman: Trong trường hợp đó, bạn nên làm điều đó với một tham gia thay thế. –

2

Tôi nghĩ rằng câu trả lời nằm ở đâu đó dọc theo những dòng ...

Array a = {1,2,3,4,5} 

...WHERE a.Contains(ID) 
+2

và tất nhiên, Jon Skeet đưa ra câu trả lời tốt nhất. Và anh ấy là FIRST! Tôi tự hỏi làm thế nào anh ta làm điều đó, thực sự. :-) –

Các vấn đề liên quan