private void UpLoadComboBoxes(ПланНормативныйТехнологический план) { var devices = cfc.УстановкаSet.Local; cfc.СправочникSet.Load(); var collection = cfc.СправочникSet .Local .Where(w => w.Id == план.Id) .Cast <ПланНормативныйТехнологический>() .FirstOrDefault(); currentPlan = collection; selectedDev = (ТехнологическаяУстановка)devices .Where(w => w.УстройствоId == currentPlan.УстройствоFK) ?.FirstOrDefault(); if (selectedDev != null) { selectedPowerDev = selectedDev .СиловойАгрегатВУстройстве .Where(w => w.ТехнологическаяУстановка.УстройствоId == selectedDev.УстройствоId && w.Id == currentPlan.ТипЭнергииId) ?.FirstOrDefault(); if (selectedPowerDev != null) { selectedOperationMode = selectedPowerDev .ежимРаботыАгрегата .Where(w => w.СиловойАгрегатВУстройстве.Id == selectedPowerDev.Id && w.Id == currentPlan.ежимРаботыId) ?.FirstOrDefault(); } } }
public ежимРаботыVM(СиловойАгрегатВУстановке агрегатВУстройстве) { cfc = new CodeFirstContext(); cfc.УстройствоРежимРесурсSet.Load(); cfc.СправочникРесурсовSet.Load(); cfc.ежимРаботыАгрегатаSet.Load(); cfc.СиловойАгрегатВУстройствеSet.Load(); OperatingModePD = new ObservableCollection <ежимРаботыАгрегата>(); var contextCollectionOperationModes = cfc .ежимРаботыАгрегатаSet .Local .Where(w => w.СиловойАгрегатВУстройстве .Id.Equals(агрегатВУстройстве.Id)); // Получение внешнего ключа из текущего контекста. currentPowerDev = cfc .СиловойАгрегатВУстройствеSet .Local .Where(w => w.Id == агрегатВУстройстве.Id) .FirstOrDefault(); // Установка значения combobox в ранее выбранное состояние. selectedТипЕдиниц = currentPowerDev.ТипЕдиницИзмерения; // Получение выбранного ресурса. //selectedRes = currentPowerDev.УстановкаРежимРесурс // .Where(w => w.СиловойАгрегатВУстановке.Id == currentPowerDev.Id) // .Select(s => s.СправочникРесурсов) // .FirstOrDefault(); int idrecord = cfc.УстройствоРежимРесурсSet .Local .Where(w => w.СиловойАгрегатВУстановкеFK == currentPowerDev.Id) .FirstOrDefault().СправочникРесурсовFK; selectedRes = cfc.СправочникРесурсовSet.Local.Where(w => w.Id == idrecord).FirstOrDefault(); currentустройствоРежимРесурс = cfc .УстройствоРежимРесурсSet .Local .Where(w => w.СиловойАгрегатВУстановкеFK == currentPowerDev.Id && w.СправочникРесурсовFK == selectedRes.Id) .FirstOrDefault(); //if (collection.FirstOrDefault() != null) //{ // currentPowerDev = collection // .FirstOrDefault() // .СиловойАгрегатВУстройстве; //} //TODO 2021-01-10: Вынести в отдельный класс по заполнению коллекций. foreach (ежимРаботыАгрегата item in contextCollectionOperationModes) { OperatingModePD.Add(item); } ListResource = WorkCollection.GetСправочникРесурсов <СправочникРесурсов>(cfc); OperatingModePD.CollectionChanged += OperatingModePD_CollectionChanged; }