2014-04-06 25 views
0

編程語言:C# 實體框架6.1自定義的LINQ查詢幫助需要

我有一個名爲LoanDetails數據庫表具有以下字段:

ID -> Primary Key 
custID-> INT 
startDate -> Datetime 
endDate -> Datetime 
Amount-> money 

我要檢索的貸款細節有效期將持續在距今天三十(30)天內結束。 請幫助我爲此創建LINQ查詢。 因此,我可以使用貸款明細的結束日期值向用戶顯示警報。 謝謝。

+5

SO不是代碼編寫服務。這是一個解決問題的服務。請告訴我們什麼不適合你,我們可以幫助解決它。不要要求我們爲你寫代碼。 – Enigmativity

+0

是的,它是我的錯誤,我沒有說明我到目前爲止所嘗試的@MEMark @ Enigmativity。我寫了以下但最終沒有用。使用(VAR DC =新DCLoanManagerEntities()){ VAR = ntfcust(從loanDetail在dc.LoanDetails 其中((時間跨度A =(loanDetail.endDate- DateTime.Today).DAY)<= 30) 選擇loanDetail。結束日期).ToList(); dataGridView1.DataSource = ntfcust; } – Developerscentral

+1

所以請編輯你的問題,告訴我們你已經嘗試過了。 – Enigmativity

回答

0
var cutoffDate = DateTIme.Now.AddDays(31).Date 
var loans = loanDetails.Where(x=>e.EndDate < cutoffDate 

與「未來30天一天結束」的訣竅是,這意味着「前第一刻在未來31天」。

因此,您添加31天,獲取日期(這是午夜點),然後在此之前結束。

+0

我最終的代碼解決了這個問題:: var cutoffDate = DateTime.Now.AddDays(31).Date; VAR貸款=(從loanDetail在dc.LoanDetails 其中loanDetail.endDate Developerscentral

0

它將很像下面。我只向你展示了你的where條件應該在查詢中。

 Where((w=>w.startDate.Date >=yourStartDate.Date 
      && w.endDate.Date<=yourEndDate.Date)); 
0
TimeSpan t = new TimeSpan(30,0,0,0,0)  

from ld in LoanDetails 
where (ld.endDate - SqlFunctions.GetDate()) == t 
select ld 
+0

你一定是在開玩笑。初學者的錯誤:如果endDate有一個索引,你只是確保它不被使用,因爲你在該領域的一邊做數學。歡迎來到您的桌面掃描霸主。 – TomTom