我想不通這是爲什麼不相交的所有項目中循環,剛剛過去的2我認爲這事做的IQueryableSql的Linq鏈式相交
var outerquery = db.Employees.Where(x => x.Name = "Smith").Select(x => x.EmployeeID);
foreach(var name in nameList){
var innerQuery = db.Employees.Where(x => x.Name = name).Select(x => x.EmployeeID);
outerquery = outerquery.Intersect(innerQuery);
}
return outerquery.ToList();
編輯 - 更具體的例子。該表有大約3500萬條記錄。
該表具有ID,ConceptID,Word。單詞可以有多個概念ID &每個記錄有1個單詞。我要交叉搜索字符串'肩膀疼痛慢性',並獲得所有共享這3個單詞的ConceptID。它應該返回:
Concept1234 - shoulder
Concept1234 - pain
Concept1234 - chronic
什麼我得到(剛剛過去2):
Concept1234 - pain
Concept1234 - chronic
35萬條記錄,這樣做的或粗糙即使有這樣的怪物服務器我有&的交點是隻有不到一秒的時間才能做到這一點。
我試圖使用LINQ到SQL(實體框架)來生成是這樣的 -
SELECT ConceptID FROM WordTable WHERE Word = 'shoulder'
INTERSECT
SELECT ConceptID FROM WordTable WHERE Word = 'pain'
INTERSECT
SELECT ConceptID FROM WordTable WHERE Word = 'chronic'
請提供更多信息:你期望什麼,你得到了什麼?你能向我們展示一個具體的例子嗎? –
它是LINQ到SQL還是實體框架?兩件不同的事情。 –