查找匹配特定条件的表中的最新记录
问题描述:
我正在使用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()
并在最后,你不能投你的corresp
到DateTime
除非你已经实现了这个功能我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