Я хотел бы найти общее свойство, которое появляется во всех моделях.
В настоящее время у меня есть два класса моделей Student
и Sport
. Студент может заниматься несколькими видами спорта. Я хотел бы найти все виды спорта, в которых играют все студенты.
Вот так выглядят мои модели
public class DbContext : DbContext
{
public DbContext(): base("name=DbContext")
{
}
public DbSet<Student> MyStudents { get; set; }
public DbSet<Sport> MySports { get; set; }
}
public class Student
{
public List<Sport> Actions { get; set; }
public string Name { get; set; }
}
public class Sport
{
public string SportName { get; set; }
}
Мой вопрос: как мне получить список всех сыгранных видов спорта? всеми студентами? Короче я ищу общий вид спорта. Таким образом, в основном в следующем случае
Student A played Sports : Soccer , Tennis , Bowling
Student B played Sports : Soccer , Tennis ,
Student C played Sport : Tennis
Тогда должен быть возвращен только Теннис и только один раз (Не несколько Теннисных Экземпляров). Это то, что я сделал
var sports = context.Sports;
var commonSports = sports.Where(sport =>
students.All(student => student.Actions.Any(studSport =>
studSport.SportName == sport.SportName)));
Однако приведенное выше дает несколько результатов. Т.е. многократный теннис, а не только один. Любые предложения о том, что я могу делать не так?