2011-10-11 56 views
1

我的数据库中有一个名为Created的列,它是一个日期时间和一个名为Minutes的列,它是一个varchar(5),并且将包含0,60,120等在linq查询中添加从一列到datetime列的分钟

我如何写一个LINQ statment只返回那些记录:

其中创建+分已经超过了当前的时间?

谢谢!

---更新:到目前为止的代码---

var results = from emails in MyDAL.Context.Emails 
    emails.Created.Value.AddMinutes(double.Parse(emails.Minutes)) > DateTime.Now 
    select emails; 
+1

是否有原因分钟是varchar而不是int?如果它是int,它会保存一个cast/convert。 – Joey

+0

这是一个int,但被改变了。这是一个很长的故事:-) – user390480

回答

2

对于寻找答案的其他人,这里是我如何最终使其工作....

System.Data.Objects.EntityFunctions.AddMinutes(emails.Created, emails.Minutes) < DateTime.Now 
1

那么你可以尝试

DateTime now = DateTime.UtcNow; 

var query = from record in db.Records 
      where record.Create.AddMinutes(int.Parse(record.Minutes)) > now 
      select record; 

是否将工作或不依赖于LINQ提供程序...

+0

这是我得到的,“LINQ to Entities不识别方法'System.DateTime AddMinutes(Double)'方法,并且此方法不能被转换为存储表达式。” – user390480