我有一个列表来搜索一个表,LINQ包含但不
List<long> searchListIds = new List<long>();
searchListIds.Add(1);
searchListIds.Add(2);
List<long> searchListFieldValues = new List<long>();
searchListFieldValues.Add(100);
searchListFieldValues.Add(50);
和我的查询是:
var adsWithRelevantadFields =
from adField in cwContext.tblAdFields
group adField by adField.adId into adAdFields
where searchListIds.All(i => adAdFields.Select(co => co.listId).Contains(i))
&& searchListFieldValues.All(i => adAdFields.Select(co => co.listFieldValue).Contains(i))
select adAdFields.Key;
一切正常,但现在我需要得到满足的所有记录小于searchListFieldValues。我的意思是:
有(listId == 1)&(listFieldValue <100)
和(listId == 2)&(listFieldValue <50)
所有的AdID
包含部分必须更改为类似包含少
例如:
cwContext.tblAdFields:
id 1 2 3 4 5 6 7
adId 1 2 1 2 3 3 3
listId 1 1 2 2 1 2 3
listfieldValue 100 100 50 50 100 49 10
现在,如果我要得到我的(listId == 1)&(listFieldValue ==100) AND (listId == 2)&(listFieldValue ==50)
代码工作,并返回ID广告ID:1,2
,但我不能让
所有的AdID有(listId == 1)&(listFieldValue ==100) AND (listId == 2)&(listFieldValue <50)
它必须返回3
所以这两个列表的大小总是相同的? –
@Anatolii Gabuza是的,我听说过concat,但我无法使用,现在的任何问题是包含更少 –
您可以举一个输入数据(cwContext.tblAdFields)的例子和您期望从该数据的结果(adsWithRelevantadFields )? – mrzli