ef linq 中判断实体中是否包含某集合
生活随笔
收集整理的這篇文章主要介紹了
ef linq 中判断实体中是否包含某集合
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
我有一個需求,問題有很多標簽,在查詢時,需要篩選包含查詢標簽的一個集合(List<int>),以前的做法是先查詢出來符合查詢標簽條件的標簽id的結果集A,再查詢問題時,加上判斷是否包含該標簽或者查詢問題編號是否在結果集A中,這種方法實在是不得已之舉。
今天經過不斷試驗,發現可以通過使用linq的except來實現一次性查詢出結果。
···
集合.WhereIf(input.Tags != null && input.Tags.Count > 0, q => q.QuestionTags.LongCount()>=input.Tags.Count&& q.QuestionTags.Select(qt => qt.TagId).Except(input.Tags).LongCount()>=0)
···
需要注意的是,首先需要排除問題標簽小于標簽選擇條件個數的記錄,其次使用LongCount()>=0來滿足問題擁有的標簽個數大于選擇條件的情況。最重要的是except的使用。
轉載于:https://www.cnblogs.com/zinan/p/9378649.html
總結
以上是生活随笔為你收集整理的ef linq 中判断实体中是否包含某集合的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 求一个不想上班的个性签名!
- 下一篇: shell基础04 结构化命令