Tôi có một mảng của Id mà tôi muốn vượt qua khuôn khổ thực thể thông qua một truy vấn LINQ to trả lại bất kỳ trận đấuSử dụng LINQ để truy vấn Int Ids từ một mảng
Tôi đã viết các truy vấn LINQ mà có thể chuyển đổi Id để dây và sử dụng 'có' nhà điều hành, chẳng hạn như:
mẫu
public class Order {
public long OrderId { get; set; }
public string Name { get; set; } ...}
Order[] orders = { new Order { OrderId = 123, Name = "Order1" }, new Order {...},...};
mà tôi có thể sử dụng một cái gì đó như:
long[] testArray = {123, 456};
và sau đó
var result = orders.Where(i => testArray.ToString().Contains(i.OrderId.ToString()));
nhưng tôi có thực sự cần phải tiếp tục truyền Id tới chuỗi không? Có vẻ như tôi không thể truy cập vào 'Chứa' nếu tôi giữ chúng dưới dạng int. Cuối cùng, tôi muốn có thể sử dụng điều này như là một phần của truy vấn truy cập Khung thực thể và vì vậy chuyển truy vấn như một phần của IQueryable <> để đảm bảo rằng tôi không trả lại dữ liệu khi tôi chỉ muốn một handfull, chẳng hạn như:
var orders = _repo.Orders().Where(i => orderArray.Contains(i.OrderId));
vì vậy, bất kỳ giải pháp nó sẽ có ích nếu params truy vấn (mảng int) thông qua EF thay vì nhận được tất cả các dữ liệu và sau đó kiểm tra nó trong bộ nhớ.
Chúc mừng!
Đây là loại điều tôi làm với EF ... var lệnh = _repo.Orders() Trường hợp (i => orderArray.Contains (i.OrderId)); có vẻ tốt với tôi. Vấn đề chính xác là gì? – Kek
@Kek: Tôi không nghĩ rằng bạn có thể sử dụng danh sách/mảng cục bộ khi truy vấn EF – Jan
mmm Tôi muốn nói rằng bạn có thể. Danh sách sẽ được liệt kê và chuyển thành danh sách (id = Cste) HOẶC ... Tôi không thấy vấn đề – Kek