Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.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
在多对多EF代码第一个对象中使用where子句的Linq_Linq_Entity Framework_Asp.net Mvc 4_Ef Code First - Fatal编程技术网

在多对多EF代码第一个对象中使用where子句的Linq

在多对多EF代码第一个对象中使用where子句的Linq,linq,entity-framework,asp.net-mvc-4,ef-code-first,Linq,Entity Framework,Asp.net Mvc 4,Ef Code First,在MVC4项目中,首先使用代码,我有以下几点: public class Course { public string CourseId { get; set; } public string Name { get; set; } public bool IsActive { get; set; } public virtual Categories ICollection<Category> { get; set; } public Course

在MVC4项目中,首先使用代码,我有以下几点:

public class Course 
{
   public string CourseId { get; set; }
   public string Name { get; set; }
   public bool IsActive { get; set; }

   public virtual Categories ICollection<Category> { get; set; }

   public Course()
   {
      Categories = new HashSet<Category>();
   }
}

public class Category
{
   public string CategoryId { get; set; }
   public string Name { get; set; }

   public virtual Courses ICollection<Course> { get; set; }

   public Category()
   {
      Courses = new HashSet<Course>();
   }
}
我如何得到一个只有活动课程的类别列表


谢谢

此查询将返回至少有一个课程处于活动状态的所有类别:

var categories = db.Categories
    .Where(x => x.Courses.Any(y => y.IsActive))
    .ToList();

此查询将返回课程全部处于活动状态的所有类别。例如,如果一个类别有两门课程,而其中一门课程处于非活动状态,则该类别将从查询中排除:

var categories = db.Categories
    .Where(x => x.Courses.All(y => y.IsActive))
    .ToList();

已尝试,并且它还包括IsActive为false的所有课程。查询将包括至少有一个课程处于活动状态的类别。如果某个类别至少有一个非活动课程,是否要排除该类别?否,我想查看所有有课程的类别,但不包括非活动的课程。
var categories = db.Categories
    .Where(x => x.Courses.All(y => y.IsActive))
    .ToList();