使用.contains()和linq-to-sql

fre*_*hie 3 c# linq asp.net linq-to-sql

我有以下查询接收一个int列表作为参数:

public int GetMostRecent(List<int> TheIDs)
{
 ...using MyDC...

   var TheMostRecentID = (from d in MyDC.Data
                           where TheIDs.Contains(d.ID)
                           orderby d.DateTime
                           select d.ID).LastOrDefault(); 
}
Run Code Online (Sandbox Code Playgroud)

这是将参数集合中的列表与数据库中的数据进行匹配的最佳方法,还是比使用linq-to-sql中的.Contains()方法更好的方法.

谢谢.

Ada*_*son 8

你有什么是正确的.这将被转换为INSQL中的子句,其中包含集合中提供的值.

在不相关的说明中,您应该尝试按日期降序排序并使用FirstOrDefault().就像现在一样,你将把整个结果集带回来并扔掉除了一行之外的每一行.