Tôi đã có SQL sau đây:LINQ to SQL: Cách viết 'Thích' chọn?
select * from transaction_log where stoptime like '%2008%'
Làm thế nào để viết những dòng này trong LINQ to SQL cú pháp?
Tôi đã có SQL sau đây:LINQ to SQL: Cách viết 'Thích' chọn?
select * from transaction_log where stoptime like '%2008%'
Làm thế nào để viết những dòng này trong LINQ to SQL cú pháp?
Nếu bạn muốn sử dụng phương pháp theo nghĩa đen, nó là như thế này:
var query = from l in transaction_log
where SqlMethods.Like(l.stoptime, "%2008%")
select l;
lựa chọn khác là:
var query = from l in transaction_log
where l.stoptime.Contains("2008")
select l;
Nếu đó là một DateTime:
var query = from l in transaction_log
where l.stoptime.Year = 2008
select l;
phương pháp Đó là trong System.Data.Linq.SqlClient không gian tên
from x in context.Table where x.Contains("2008") select x
Tôi không chắc liệu kết quả này có đúng với Sql hay không. Bạn sẽ phải hồ sơ nó để xem. – Will
Nếu loại dữ liệu thời gian dừng là chuỗi, bạn có thể sử dụng hàm .Contains() và .StartsWith() và .EndsWith().
Nếu bạn sử dụng bộ chứa cho phương pháp thì bạn đang thực hiện LIKE '% somestring%'. Nếu bạn sử dụng phương thức startswith thì nó giống như 'somestring%'. Cuối cùng, endswith cũng giống như sử dụng '% somestring'.
Để tóm tắt, chứa sẽ tìm thấy bất kỳ mẫu nào trong chuỗi nhưng bắt đầu và kết thúc sẽ giúp bạn tìm các kết quả phù hợp ở đầu và cuối từ.
Điểm thực sự thú vị là .NET tạo truy vấn như "Chọn * từ bảng có tên như '% test%'" khi bạn sử dụng "từ x trong ngữ cảnh.Table trong đó x.Contains (" test ") chọn x "khá ấn tượng
Cảm ơn - câu trả lời hay.
Đây là, trên thực tế, một loại DateTime; Tôi phải gõ "stoptime" là:
var query = from p in dbTransSummary.Transaction_Logs
where ((DateTime) p.StopTime).Year == dtRollUpDate.Year
select
Điểm nhỏ. Nó hoạt động tuyệt vời!
mát mẻ. Tôi đi và chạy. Tôi đã phải gõ "stoptime" vào một DateTime để truy cập vào các tài sản năm, nhưng không có vấn đề lớn. –