Я искал inte rnet, но не смог найти что-то для моего конкретного c кейса.
Вот мои модели:
public class Unit
{
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int UnitID { get; set; }
public string Name { get; set; }
public int UnitStatusID { get; set; }
public List<ReservationUnit> ReservationUnits { get; set; }
}
public class ReservationUnit
{
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ReservationUnitID { get; set; }
[Required]
public int ReservationID { get; set; }
public Reservation Reservation { get; set; }
[Required]
public int UnitID { get; set; }
public Unit Unit { get; set; }
public decimal Amount { get; set; }
public bool AmountIsTaxInclusive { get; set; }
public bool IsFixedRate { get; set; }
}
public class Reservation
{
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ReservationID { get; set; }
public int ReservationStatusID { get; set; }
public List<ReservationUnit> Units { get; set; }
}
Мне нужно найти :
- Все юниты со статусом == 1
- Для всех этих юнитов все бронирования с бронированием == 1
Я могу получить юниты и Я могу выбрать все единицы резервирования ... но я не могу отфильтровать резервирования, чтобы получить включенный элемент резервирования. Может ли кто-нибудь указать мне правильное направление? Это то, что я пробовал:
var unitQuery =
db
.Units
.Where(x => x.UnitStatusID == 1 || x.UnitStatusID == 4)
.Include(o => o.ReservationUnits.Where(p => p.Reservation.ReservationStatusID == 1))
.ToList();
, что вызывает следующую ошибку:
System.ArgumentException: «Выражение include-пути должно ссылаться на определенное свойство навигации по типу. Используйте пунктирные пути для ссылочных свойств навигации и оператор Select для свойств навигации коллекции. (Параметр 'path') '