Tôi muốn kiểm tra xem một ngày cụ thể có sớm hơn một tháng so với ngày hôm nay bằng LINQ hay không.Cách so sánh ngày trong LINQ?
Cú pháp cho điều này là gì?
Xin cảm ơn trước.
Tôi muốn kiểm tra xem một ngày cụ thể có sớm hơn một tháng so với ngày hôm nay bằng LINQ hay không.Cách so sánh ngày trong LINQ?
Cú pháp cho điều này là gì?
Xin cảm ơn trước.
Tôi giả sử bạn đang nói về mệnh đề where. Về cơ bản nó giống như cách bạn so sánh hai đối tượng DateTime ở nơi khác.
using (DataContext context = new DataContext()) {
var query = from t in context.table
where t.CreateDate.Date < DateTime.Today.AddMonths(-1)
select t;
}
Chỉ cần thêm, trong LINQ thành đối tượng bạn phải so sánh với biến. Ví dụ:
DateTime lastMonth = DateTime.Today.AddMonths(-1);
using (var db = new MyEntities())
{
var query = from s in db.ViewOrTable
orderby s.ColName
where (s.StartDate > lastMonth)
select s;
_dsResults = query.ToList();
}
Nếu bạn không muốn mã của bạn để ném
LINQ to Entities does not recognize the method 'System.DateTime AddYears(Int32)' method, and this method cannot be translated into a store expression.
tôi sẽ đề nghị sử dụng DbFunctions.AddYears. Ngoài ra, nếu bạn đang quan tâm chỉ khoảng ngày và không thời gian, bạn có thể sử dụng DbFunctions.TruncateTime
Something như this-
DbFunctions.TruncateTime(x.date) ==
DbFunctions.TruncateTime(DbFunctions.AddYears(DateTime.Today, 1))