如果修改日期大于或正在使用linq,则选择数据库中的所有记录

本文关键字:数据库 选择 记录 linq 大于 日期 修改 如果 | 更新日期: 2023-09-27 18:10:22

我有一个问题,我想知道谁能帮助我。我正在使用Linq从数据库创建一个列表,我想返回在当前日期已修改的列表中的所有记录。

日期由:

 contact.CreatedDate = System.DateTime.Now;
 ctx.Contacts.Add(contact);'

当记录被更新时,ModifiedDate被给定一个值。

  contact.ModifiedDate = System.DateTime.Now;
  ctx.Entry(contact).State = EntityState.Modified;

这一切都很好,问题在下面:

var Contactlist = ctx.Contacts.Where(x => x.ModifiedDate = System.DateTime.Now ).ToList();

如果修改日期大于或正在使用linq,则选择数据库中的所有记录

For Entity framework EntityFunctions.TruncateTime

var Contactlist = ctx.Contacts.Where(x => 
                       EntityFunctions.TruncateTime(x.ModifiedDate) == EntityFunctions.TruncateTime(System.DateTime.Today))
                       .ToList();

对于LINQ对象,您可以只比较Date部分,如:

var Contactlist = ctx.Contacts.Where(x => x.ModifiedDate.Date == System.DateTime.Today)
                              .ToList();

。net框架中的DateTime类型对象有DateTime部分,您当前的检查将比较日期和时间。(你还需要==而不是=)

DateTime.Now将返回当前日期和当前时间,DateTime.Today将返回当前日期和时间设置为00:00:00。类似地,DateTime.Date将返回时间设置为00:00:00的日期部分,因此您可以仅将其用于比较日期部分。