У меня есть dotnet core 2.0
бэкэнд и angular2+
приложение внешнего интерфейса.
Я хотел бы получить список участников, где поле event
равно «базовой линии» (происходит из выпадающего меню в HTML) в классе расписаний. У меня one-to-many
отношения между Participant
и Schedule
классом.
Participant.cs
класс:
public class Participant
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Gender { get; set; }
public DateTime DateOfBirth { get; set; }
// RelationShips
public ICollection<Schedule> Schedules { get; set; }
public Participant()
{
Schedules = new Collection<Schedule>();
}
}
И мой Schedule.cs
класс:
public class Schedule
{
public int Id { get; set; }
public DateTime? AppointmentDate { get; set; }
public string AppointmentTime { get; set; }
public string Event { get; set; }
public string Location { get; set; }
// RelationShip
public Participant Participant { get; set; }
public int ParticipantId { get; set; }
}
У меня есть angular 2+
интерфейс, чтобы использовать его для получения списка участников и их расписаний, где событие равно «базовому уровню». Базовая линия исходит от внешнего интерфейса. По сути, это жестко выпадающий пункт меню.
Я могу получить все расписания со всеми событиями, как показано ниже:
return await context.Participants
.Include(x => x.Schedules)
.ToListAsync();
Но это снова дает мне людей со всеми расписаниями. Мне нужны люди со всем графиком, где event
равно «базовому уровню».
Вот что я придумал:
return await context. Participants
.Include(x => x.Schedules.Where(v => v.Event == "baseline"))
.ToListAsync();
Но это мне ничего не дает.
Каков был бы способ сделать это? Я не помню, где я читал, но кто-то сказал, что структура сущностей пока не поддерживает это. Я не уверен, что это правда ..
Любая помощь будет оценена.
EDIT:
Вот ошибка стека у меня:
InvalidOperationException: лямбда-выражение свойства Include 'x => {из расписания v в x.Schedules, где [v] .Event.ToLower (). Equals (__ ToLower_0) select [v]}' недопустимо. Выражение должно представлять доступ к свойству: 't => t.MyProperty'. Чтобы нацелить навигацию, объявленную на производные типы, укажите явно лямбда-параметр целевого типа, например '(Производный d) => d.MyProperty'. Для получения дополнительной информации о включении связанных данных см. http://go.microsoft.com/fwlink/?LinkID=74639