我目前正在尝试通过两个参数过滤SQL查询,然后按日期字段对它们进行排序。除此之外,每个条目都有一个唯一的ID。我试图获取最新的行,如果返回一个不需要的匹配条件,则重新查询表中的下一个项目。但是,我必须排除先前发现的结果,该结果仅被该ID识别为唯一。
这就是我所拥有的:
List<string> prevChecked = new List<string>;
do{
var query = (from someRow in context.aTable
where someRow.Param1.Equals(param1Arg) &&
someRow.Param2.Equals(param2Arg)
// Trying to Exclude any Unique in results that have a
// matching uniqueID inside of prevChecked
orderby someRow.RecentDate descending
select someRow).FirstOrDefault();
// Use result of query, to get result of anotherQuery,
// if null append the query.UniqueID to prevChecked
}while (anotherQuery != null)
我尝试过使用
!someRow.UniqueID.Contains(prevChecked)
并在一个网页上看到了一个“除外”功能,虽然这两个灵魂都不起作用。
答案 0 :(得分:4)
您可以在where
子句中添加条件,如:
!prevChecked.Contains(someRow.UniqueID)
所以你的查询是:
var query = (from someRow in context.aTable
where someRow.Param1.Equals(param1Arg) &&
someRow.Param2.Equals(param2Arg) &&
!prevChecked.Contains(someRow.UniqueID)
orderby someRow.RecentDate descending
select someRow).FirstorDefault();