Мне нужно создать 2 списка, и я ищу передовой опыт и, в конечном итоге, однострочный синтаксис!
Я использую Entity Framework, и у меня есть 3 таблицы:
public class Position
{
public int ID { get; set; }
public string Name { get; set; }
}
public class Training
{
public int Id { get; set; }
public string Name { get; set; }
}
public class Association
{
public int Id { get; set; }
public Impact Impact { get; set; }
public int TrainingId { get; set; }
public virtual Training Training { get; set; }
public int PositionId { get; set; }
public virtual Position Position { get; set; }
}
public enum Impact
{
Optional,
Mandatory
}
Я должен выбрать все тренировки, которые упомянуты в таблице Association как обязательные или необязательные (я имею в виду, что столбец Impact должен быть заполнен Impact.Optional), а PositionId — это тот, который я даю через параметр или что-то в этом роде!
Как я могу это сделать?
Это то, что тебе надо? var result = db.Asociation.Where(x => x.Impact == Impact.YOUR_IMPACT && PositionId == YOUR_ID);
@Мэтт, почти да, и с этим, как я могу получить коллекцию тренировок! Ваш синтаксис фильтрует правильные «ассоциации», и я хочу использовать TrainingId, чтобы взять список тренировок!
Проверьте мой ответ ниже и попробуйте еще раз





Попробуй это
public List<Training> GetOptionalTrainings(int positionId)
{
_context.Associations
.Where(a => a.Impact == Impact.Optional && a.PositionId == positionId)
.Select(a => a.Training)
.ToList();
}
что ты уже испробовал?