Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/320.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#_Database_Linq - Fatal编程技术网

C# LINQ比较两个列表,每个列表在一个对象内,至少一个相等

C# LINQ比较两个列表,每个列表在一个对象内,至少一个相等,c#,database,linq,C#,Database,Linq,我有一个目标学生 public class Student { public int id; public string name; public ICollection<WeekDays> weekDays; } 上课时间是这样的: public class WeekDays { public Days day; } public enum Days { Monday, Tuesday, Wednesday, T

我有一个目标学生

public class Student
{
    public int id;
    public string name;
    public ICollection<WeekDays> weekDays;
}
上课时间是这样的:

public class WeekDays
{
    public Days day;
}
public enum Days 
{
    Monday,
    Tuesday,
    Wednesday,
    Thursday,
    Friday,
    Saturday
    Sunday
}
var student1; //this is a student that have the specific values (id, names and all the weekDays, all initialized with values)

var student2 = database.Students
     .Include(x => x.weekDays)
     .Where(x =>
            x.weekDays.Any(day1 => student1.weekDays.Any(day2 => day2.WorkDay == day1.WorkDay))
     )
     .FirstOrDefaultAsync();
我想让学生与某个特定的学生至少有一个共同的一天

我是这样做的:

public class WeekDays
{
    public Days day;
}
public enum Days 
{
    Monday,
    Tuesday,
    Wednesday,
    Thursday,
    Friday,
    Saturday
    Sunday
}
var student1; //this is a student that have the specific values (id, names and all the weekDays, all initialized with values)

var student2 = database.Students
     .Include(x => x.weekDays)
     .Where(x =>
            x.weekDays.Any(day1 => student1.weekDays.Any(day2 => day2.WorkDay == day1.WorkDay))
     )
     .FirstOrDefaultAsync();
但它不起作用,这是错误:

“(我的LINQ表情在这里)”无法翻译。以可以翻译的形式重写查询,或者通过插入对AsEnumerable()、AsAsAsAsyncEnumerable()、ToList()或ToListSync()的调用显式切换到客户端计算


请尝试预先选择日期并使用
包含的内容

var student1Days = student1.weekDays.Select(d => d.day).ToList();
var student2 = database.Students
     .Include(x => x.weekDays)
     .Where(x => x.weekDays.Any(day1 => student1Days.Contains(day1.WorkDay)))
     .FirstOrDefaultAsync();

@杰克·查韦斯很高兴这有帮助!