2011-10-11 53 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