using (EPOSEntities1 db = new EPOSEntities1())
{
List<ActionPerformed> PLUlist = db.ActionPerformeds.ToList();
ActionPerformed Latest_PLU = PLUlist.OrderByDescending(x => x.Date).FirstOrDefault();
}
这将返回存储的最后一条记录。但是我现在已经在表File_Name中添加了另一列,我怎么能在其中添加一个where子句来说明orderByDescending来获取最新文件,然后从那里得到第一条记录,其中file_Name为'Sales'。??
所以例如。
File_Name Date
12) Products 11/02/2014
13) Sales 11/02/2014
14) Products 11/02/2014
这将返回记录13 ??
答案 0 :(得分:2)
在Where
之前使用OrderByDescending
子句,如果调用ToList,它将立即评估查询并填充记录。如果你在评估之前打电话给哪里会更好。
ActionPerformed Latest_PLU = db.ActionPerformeds.Where(c=>File_Name == "Sales")
.OrderByDescending(x => x.Date)
.FirstOrDefault();
答案 1 :(得分:2)
Where
方法可以将您的收藏仅过滤为File_Name
为"Sales"
的项目。
考虑在执行调用之前放置LINQ查询,以便LINQ-to-DB提供程序可以执行查询服务器端并仅返回一个项目。您正在做的是将整个ActionPeformeds
表从服务器下载到客户端,然后执行客户端查询。
ActionPerformed Latest_PLU = db.ActionPerformeds
.Where(x => x.File_Name == "Sales")
.OrderByDescending(x => x.Date)
.FirstOrDefault();
“执行电话”是指ToList()
,First()
,FirstOrDefault()
等。
答案 2 :(得分:1)
ActionPerformed Latest_PLU = PLUlist.Where(p => p.File_Name == 'Sales').OrderByDescending(x => x.Date).FirstOrDefault();