Tôi có một biểu mẫu có nhiều tiêu chí tìm kiếm mà người dùng có thể sử dụng để tìm kiếm dữ liệu của nhân viên, ví dụ: FirstName, LastName, HireDate, Department, vvTuyên bố LINQ không liên quan với nhiều tiêu chí tìm kiếm
Tôi đang sử dụng LINQ và tôi tự hỏi tôi có thể sử dụng phương pháp nào để truy vấn tập hợp các nhân viên được cung cấp bất kỳ tiêu chí tìm kiếm nào, tức là người dùng không phải nhập tất cả, nhưng họ phải nhập ít nhất một trong các tham số tìm kiếm.
Cho đến nay, trong khi kiểm tra câu lệnh LINQ của tôi với hai tham số tìm kiếm tại chỗ, có vẻ như tôi phải xem tham số tìm kiếm có được nhập hay không. Nếu đây là trường hợp, sau đó điều này có thể nhận được khá khó sử dụng cho nhiều tham số tìm kiếm.
// only FirstName is entered
if (!string.IsNullOrEmpty(FirstName) && string.IsNullOrEmpty(LastName))
{
var employees = DB.Employees
.Where(emp => emp.FirstName.Contains(fName));
}
// only LastName is entered
else if (string.IsNullOrEmpty(FirstName) && !string.IsNullOrEmpty(LastName))
{
var employees = DB.Employees
.Where(emp => emp.LastName.Contains(lName));
}
// both parameters are entered
else if (!string.IsNullOrEmpty(FirstName) && !string.IsNullOrEmpty(LastName))
{
var employees = DB.Employees
.Where(emp => emp.FirstName.Contains(fName))
.Where(emp => emp.LastName.Contains(lName));
}
FYI, tôi ban đầu nghĩ rằng tôi chỉ có thể nối thêm ở đâu() báo cáo để tuyên bố LINQ của tôi với các thông số tìm kiếm thích hợp nhưng tôi nhận thấy rằng không phải tất cả hồ sơ đã được trả lại mà nên như vậy và logic trên của if- sau đó phát biểu.
Bạn có thể nối nhiều câu lệnh LINQ nếu bạn đang làm việc với IQuery. Đây có phải là LINQ to Objects hay bạn đang sử dụng ORM để truy vấn cơ sở dữ liệu? – cost
@cost - Lúc đầu, tôi không hiểu ý kiến của bạn, nhưng sau khi nhìn thấy các câu trả lời được cung cấp, tôi tin rằng bạn là chính xác. Cảm ơn! –