linq:如何在1分钟内更新记录?

时间:2011-08-15 16:12:36

标签: .net linq

我有一个表有一个名为lastUpdateTime,datetime type的列。如何进行查询,列出最近1分钟内更新过的所有记录?

DataContext dc=new DataContext();

from a in dc.Acccounts
where a.lastUpdateTime //how to write this line?
select a;

2 个答案:

答案 0 :(得分:3)

这可能取决于时区数据可能会变得棘手,但假设你可以做到简单..

from a in dc.Accounts
where a.lastUpdateTime >= DateTime.Now.AddMinutes(-1)
select a;

答案 1 :(得分:0)

我相信大约有900种方法来捕捉这只猫。我在这里做了很多假设,但这应该让你跑步。

  1. 首先我创建了一个控制台应用程序,因为我不清楚你在使用什么(假设是wpf或silverlight)
  2. 使用您的LastUpdateDate:

    创建了一个person类
    public class Person
    {
        public int ID { get; set; }
        public string FirstName { get; set; }
        public DateTime LastUpdateDate { get; set; }
        public Person()
    
        {
        }
    {
    
  3. 使用任意数据填充人员列表。使用lambda表达式执行查询。如果减法没有意义,请查看Timespan。注意2其中的更新日期大于1分钟。

    static void Main(string[] args)
    {   
        List<Person> People = new List<Person>();
        People.Add(new Person() { ID = 1, FirstName = "Test1", LastUpdateDate = DateTime.Now.AddMinutes(-10) });
        People.Add(new Person() { ID = 2, FirstName = "Test2", LastUpdateDate = DateTime.Now.AddMinutes(-5) });
        People.Add(new Person() { ID = 3, FirstName = "Test3", LastUpdateDate = DateTime.Now });
    
        var result = People.Where(p => (DateTime.Now - p.LastUpdateDate).Minutes <= 1);
    
        foreach (Person p in result)
        {
            Console.WriteLine(p.FirstName);
        }
    
        Console.ReadLine();
    }
    
  4. 结果应为“Test3”

  5. 干杯

    马特