Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 连接表中的LINQ查询_C#_Linq - Fatal编程技术网

C# 连接表中的LINQ查询

C# 连接表中的LINQ查询,c#,linq,C#,Linq,我有一张这样的桌子:- CategoryId | QuestionId ----------------------- 1 | 2 1 | 3 3 | 2 4 | 3 我需要找出所有没有被某一特定类别使用的问题。例如,CategoryID=1 结果应该是没有问题显示 有人知道最好的方法吗?到目前为止,我还没有取得任何进展 编辑** public partial class FAQ {

我有一张这样的桌子:-

CategoryId | QuestionId
----------------------- 
1      |      2 
1      |      3 
3      |      2 
4      |      3

我需要找出所有没有被某一特定类别使用的问题。例如,CategoryID=1

结果应该是没有问题显示

有人知道最好的方法吗?到目前为止,我还没有取得任何进展

编辑**

public partial class FAQ
    {
        public FAQ()
        {
            this.FAQCategoriesFAQs = new HashSet<FAQCategoriesFAQ>();
        }

        public int Id { get; set; }
        public string Question { get; set; }
        public string Answer { get; set; }
        public bool IsVisible { get; set; }
        public Nullable<System.DateTime> DateLastUpdated { get; set; }
        public System.DateTime DateCreated { get; set; }
        public bool IsDeleted { get; set; }

        public virtual ICollection<FAQCategoriesFAQ> FAQCategoriesFAQs { get; set; }
    }

 public partial class FAQCategory
    {
        public FAQCategory()
        {
            this.FAQCategoriesFAQs = new HashSet<FAQCategoriesFAQ>();
        }

        public int Id { get; set; }
        public string Name { get; set; }
        public int DomainId { get; set; }
        public Nullable<System.DateTime> DateLastUpdated { get; set; }
        public System.DateTime DateCreated { get; set; }
        public bool IsDeleted { get; set; }
        public int SortOrder { get; set; }

        public virtual Domain Domain { get; set; }
        public virtual ICollection<FAQCategoriesFAQ> FAQCategoriesFAQs { get; set; }
    }

 public partial class FAQCategoriesFAQ
    {
        public int FAQCategoryId { get; set; }
        public int FAQId { get; set; }
        public int SortOrder { get; set; }

        public virtual FAQCategory FAQCategory { get; set; }
        public virtual FAQ FAQ { get; set; }
    }
公共部分类常见问题解答
{
公众常见问题
{
this.FAQCategoriesFAQs=new HashSet();
}
公共int Id{get;set;}
公共字符串问题{get;set;}
公共字符串答案{get;set;}
公共布尔值可见{get;set;}
公共可为空的DateLastUpdated{get;set;}
public System.DateTime DateCreated{get;set;}
公共布尔被删除{get;set;}
公共虚拟ICollection FAQ分类FAQ{get;set;}
}
公共部分类
{
公众常见问题解答(分类)
{
this.FAQCategoriesFAQs=new HashSet();
}
公共int Id{get;set;}
公共字符串名称{get;set;}
公共int域ID{get;set;}
公共可为空的DateLastUpdated{get;set;}
public System.DateTime DateCreated{get;set;}
公共布尔被删除{get;set;}
公共int排序器{get;set;}
公共虚拟域{get;set;}
公共虚拟ICollection FAQ分类FAQ{get;set;}
}
公共部分类FAQ分类FAQ
{
public int FAQCategoryId{get;set;}
public int FAQId{get;set;}
公共int排序器{get;set;}
公共虚拟FAQ类别FAQ类别{get;set;}
公共虚拟常见问题解答FAQ{get;set;}
}

如果您在
问题
实体中有类别的导航属性:

db.Questions.Where(q => !q.Categories.Any(c => c.Id == id))
更新连接表,使其与原始问题略有不同:)


您有具有导航属性的实体吗?有,x.FAQ分类FAQ。。但是我需要忽略那些被其他类别重复的问题?“我需要拉出所有没有被特定类别使用的问题。例如,CategoryID=1”应该是“问题ID=1”吗?所以你想要的问题不会出现在连接表的任何地方?否则我会对你的要求感到困惑。如果问题不在该表中,那么我假设您可以获得确实存在的问题ID的列表?恐怕我必须直接访问连接表。这并不理想,但我们必须改变。因此,我无法访问类别导航属性。我必须访问连接表,这使它变得很困难。@Derek您能否提供您的实体代码(显示ID和导航属性)。还有,为什么你不得不使用连接表?除了键之外还有其他字段吗?是的,连接表中添加了一个排序顺序列,这破坏了导航属性。@Derek已更新,您可以从连接实体中使用
FAQCategoryId
。谢谢您的帮助!
db.FAQs.Where(q => !q.FAQCategoriesFAQs.Any(qc => qc.FAQCategoryId == id))