2014-04-06 18 views
9

Có thể thay đổi truy vấn của tôi bên dưới để sử dụng danh sách types trong truy vấn loại chứa hay không.LINQ chọn bản ghi khớp với danh sách ID

Vì vậy, thay vì phải:

var cust = db.Customers.Where(x => x.type_id==9 || x.type_id==15 || x.type_id==16).ToList(); 

... Tôi sẽ có một cái gì đó như:

List<int> types = new List<int> { 9, 15, 16 }; 
var cust = db.Customers.Where(x => types.contains(x.type_id).ToList(); 

(type_id không phải là khóa chính).

Cảm ơn bạn,

Đánh dấu

+0

bạn là đúng . Chỉ cần sử dụng 'Chứa' thay vì 'chứa' – Azim

+0

http://www.codeducky.org/sql-queries-in-linq/#where là một bài đăng trên blog dịch các truy vấn SQL phổ biến thành LINQ. Nó có một ví dụ cho 'WHERE IN' và các truy vấn SQL phổ biến khác. –

Trả lời

16

Vâng, phương pháp List<T>.Contains sẽ được dịch sang SQL TRÊN điều hành:

var cust = db.Customers.Where(x => types.Contains(x.type_id)).ToList(); 

truy vấn tạo sẽ giống như sau:

SELECT * FROM Customers 
WHERE type_id IN (@p0, @p1, @p2) 
+1

Cảm ơn bạn @ sergey-berezovskiy - đã làm việc hoàn hảo! Chúc mừng, Mark – Mark

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