zoukankan      html  css  js  c++  java
  • 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的使用。

  • 相关阅读:
    没有一个计时器控制在VB6计时器功能
    检测系统范围内的鼠标事件
    c# Com
    tcpdump
    dd
    dumpe/dumpe2fs/e2fsck
    fdisk
    mkswap/swapon/swapoff/free
    mkfs/mk2fs/fsck/e2fsck/tune2fs/blkid
    parted
  • 原文地址:https://www.cnblogs.com/zinan/p/9378649.html
Copyright © 2011-2022 走看看