var resulty = db.QIS
.Where(w=>w.QSA.Any(a => a.QSID != w.QSID))
.Select(s => s.QSID).ToList();
查詢2
var resultz = db.QIS
.Where(w=>w.QSA.Where(h => h.QSID == w.QSID).Select(s => s.QSID).FirstOrDefault() != w.QSID)
.Select(s => s.QSID).ToList();
表QIS
和QSA
相關Many:Many
。這裏的想法是找到QIS.ID's
有多少QSA
QIS.QID == QSA.QID
。
Query 1
回報0
Query 2
,從另一方面給了我什麼,我希望看到(列表中關閉所有非匹配QIS記錄)。
爲什麼會在任何不行? - 我發現自己在單獨的場景中幾次遇到同樣的情況......感謝任何幫助/想法。
PS:首選方法語法。
'Any()'返回一個布爾值,而不是'IEnumerable'。無論如何,這兩個查詢都沒有多大意義。 'db.QIS'和'w.QSA'之間發生了什麼?好像有一個點在那裏丟失。另外,你的第一個查詢有一個太多的小括號。你爲什麼不復制/粘貼你的實際工作代碼? –
對不起,我試圖在發佈之前弄清楚所有的怪癖,再看看,當我將!=轉成==(在。任何比較)時,我都會得到我想要的相反值。從邏輯上講,我認爲我可以放置一個!=來獲得我需要的東西。 –
你在第二個查詢中雙擊'where'會讓我困惑。那是幹什麼的?另外,這似乎是在編寫SQL時使用「內部連接」的超級小問題... –