3 回答

TA貢獻(xiàn)1943條經(jīng)驗(yàn) 獲得超7個(gè)贊
我建議您創(chuàng)建兩個(gè) Id 列表,分別代表可以包含的活動(dòng)和需要排除的活動(dòng)。像下面這樣使用它們:
List<int> IncludedIds = new List<int>(){1,26}; List<int> ExcludedIds = new List<int>(){27}; _dbContext.ProfileFans.Where(e => e.Fan.SNUrl != null && e.Activities.Any(x => IncludedIds.Any(x.ActivityId) && !ExcludedIds.Any(x.ActivityId) && e.ProfileId == profileId);
請(qǐng)注意:我使用的List<int>
是因?yàn)榻o定的示例,您必須根據(jù)數(shù)據(jù)類型創(chuàng)建列表ActivityId

TA貢獻(xiàn)2011條經(jīng)驗(yàn) 獲得超2個(gè)贊
您不需要白名單和黑名單。要么是其中之一,要么是另一個(gè)。所以我正在制定一個(gè)白名單。如果允許的ActivityId是1或者26,那么根據(jù)定義它肯定不是27,所以沒有必要嘗試排除它。我正在使用int[]
而不是List<int>
考慮到白名單可能是靜態(tài)的,但List<int>
如果您想動(dòng)態(tài)修改它,請(qǐng)隨意將其更改為 a 。
int[] whiteList = { 1, 26 }; var allFansSavedAsLeads = _dbContext.ProfileFans.Where(pf => pf.Fan.SNUrl.HasValue && pf.Activities.Any(fa => whiteList.Contains(fa.ActivityId)));
如果您也想要 JOIN,您可能需要查看.Include()
,但從您最初的 SQL 查詢來看,您似乎實(shí)際上并不需要連接表的內(nèi)容。

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超3個(gè)贊
您可以創(chuàng)建一個(gè)臨時(shí)ActivityList
AS
var?List<int>?ActivityList?=?new?List<int>()?{1,?26}
并使用類似的東西
ActivityList.Contains(x?=>?x.ActivityId)
- 3 回答
- 0 關(guān)注
- 219 瀏覽
添加回答
舉報(bào)