У меня есть таблицы, сопоставленные отношениям «многие ко многим», а в таблице соединений у меня есть дополнительное поле «Unit» (целое число), флажок (булево), поэтому любой из них поможет мне прочитать значение «Unit»..
Контроллер: -
// GET: PatientFees/Edit/5
public IActionResult Edit(int? id)
{
ServiceFeeViewModel SFVM = new ServiceFeeViewModel();
var St = _context.PatientFees.Include(s => s.PatientService).ThenInclude(e => e.Services).AsNoTracking().SingleOrDefault(m => m.PatientID == id);
var AllServices = _context.Services.Select(vm => new ServiceChecklistItems()
{
ServiceID = vm.ServiceID,
Procedure = vm.Procedure,
Amount = vm.Amount,
Unit = ??,
IsChecked = vm.PatientService.Any(x => x.PatientID == St.PatientID) ? true : false
}).ToList();
SFVM.PatientID = St.PatientID;
SFVM.EstimateAmount = St.EstimateAmount;
SFVM.Discount = St.Discount;
SFVM.AmountToPay = St.AmountToPay;
SFVM.AvailableServices = AllServices;
return View(SFVM);
}
ViewModel
public class ServiceFeeViewModel{
[Key ]
public int PatientID { get; set; }
public int EstimateAmount { get; set; }
public int Discount { get; set; }
public int AmountToPay { get; set; }
public List<ServiceChecklistItems> AvailableServices { get; set; }
}
ChecklistItems: -
public class ServiceChecklistItems
{
[Key]
public int ServiceID { get; set; }
public string Procedure { get; set; }
public int Amount { get; set; }
public int Unit { get; set; }
public bool IsChecked { get; set; }
}
Три подключенных модели
public class PatientFees
{
[Key]
public int PatientID { get; set; }
public int EstimateAmount { get; set; }
public int Discount { get; set; }
public int AmountToPay { get; set; }
public Patient Patient { get; set; }
public List<PatientService> PatientService { get; set; }
}
public class PatientService
{
public int PatientID { get; set; }
public PatientFees PatientFees { get; set; }
public int ServiceID { get; set; }
public Services Services { get; set; }
public int Unit { get; set; }
}
public class Services
{
[Key]
public int ServiceID { get; set; }
public string Procedure { get; set; }
public int Amount { get; set; }
public DateTime TimeFrame { get; set; }
public List<PatientService> PatientService { get; set; }
}
Служба пациента - это объединяющая таблица, в которой есть дополнительное поле «Единица измерения», поэтому я хочу, чтобы при получении отмеченных элементов также читалась единица измерения.