2015-01-09 83 views
1

我正在使用C#和T-SQL。查找匹配特定條件的表中的最新記錄

我想從匹配特定條件的表中獲取最近記錄的日期,並且我卡在匹配部分。目前,我有什麼是:

date = (DateTime)(context.corresps.OrderByDescending(x => x.tevent).Select(x => x.tevent).FirstOrDefault()); 

我什麼無法弄清楚如何增加這種說法是:

WHERE cmethod = 'W' 

我可以重寫這是一個標準的LINQ查詢,但我想更好的自己。感謝您的幫助。

回答

2

除非林失去了一些東西:

var date = context.corresps.OrderByDescending(x => x.tevent) .Where(x => x.cMethod == "W") .Select(x => x.tevent) .FirstOrDefault());

1

我想你是誤會了整個概念。

,當你有

context.corresps.OrderByDescending(x => x.tevent).FirstOrDefault() 

你得到一個corresp具有最高價值的領域tevent

您可以通過使用添加一個條件到查詢的WHERE子句這樣

context.corresps.Where(x => x.cmethod = 'W').OrderByDescending(x => x.tevent).FirstOrDefault() 

並在最後,你不能投你的correspDateTime除非你已經實現了這個功能我nside corresp班。所以你應該從對象本身得到你想要的日期時間。最終的代碼將會是這樣的

var lastCorresp = context.corresps.Where(x => x.cmethod = 'W').OrderByDescending(x => x.tevent).Select(x => x.tevent).FirstOrDefault(); 
var lastDate = lastCorresp.tevent; //or any other field that represents the date time you want, since you've ordered your query by tevent field I assume that this field holds the date time you want to use 
相關問題