2008-09-18 29 views

Trả lời

29

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

+0

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. –

1
from x in context.Table where x.Contains("2008") select x 
+0

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

1

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().

0

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ừ.

0

Đ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

0

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!