Bạn cần phải đặt một phần của dự báo trước đó, đó là dễ dàng với một let
clause:
var name = from x in db.authors
let fullName = x.name + " " + x.surname
where fullName == "Jean Paul Olvera"
orderby x.surname
select new { x.id_author, fullName };
Lưu ý rằng x.name + " " + x.surname
sẽ được biên dịch vào mã giống như String.Concat(x.name, " ", x.surname)
, nhưng là dễ đọc hơn đối với hầu hết mọi người. Cũng lưu ý rằng khi bạn không làm bất cứ điều gì bên ngoài dấu ngoặc đơn ()
, không cần thiết cho chúng.
Tôi sẽ hy vọng rằng bất kỳ nhà cung cấp LINQ SQL tốt nào sẽ chuyển truy vấn này thành truy vấn SQL hợp lý và hiệu quả, nhưng bạn nên xác thực điều này. Mặt khác, tôi sẽ thường là đề xuất việc yêu cầu truy vấn trên các trường riêng lẻ, ví dụ:
where x.name == "Jean Paul" && x.surname == "Olvera"
Nguồn
2013-04-09 16:07:30
có thể định nghĩa một bí danh cho 'fullname'? –
@combo_ci Tôi không hiểu câu hỏi của bạn. Đó chính xác là những gì mã này làm. – cdhowie