查找匹配特定条件的表中的最新记录

问题描述:

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

我想从匹配特定条件的表中获取最近记录的日期,并且我卡在匹配部分。目前,我有什么是:

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

我什么无法弄清楚如何增加这种说法是:

WHERE cmethod = 'W' 

我可以重写这是一个标准的LINQ查询,但我想更好的自己。感谢您的帮助。

除非林失去了一些东西:

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

我想你是误会了整个概念。

,当你有

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