protected override IEnumerable <object> EnumerateReferences(MsBuildConditionalConstructWhenElement record)
        {
            yield return(record.MsBuildCondition);

            yield return(record.MsBuildConditionalContructItemGroupPropertyGroupSection);
        }
 protected override Expression <Func <MsBuildConditionalConstructWhenElement, bool> > FindExisting(MsBuildConditionalConstructWhenElement record)
 => existing
 => existing.MsBuildConditionId == record.MsBuildConditionId &&
 existing.MsBuildConditionalContructItemGroupPropertyGroupSectionId == record.MsBuildConditionalContructItemGroupPropertyGroupSectionId;
        protected override async Task <MsBuildConditionalConstructWhenElement> AssignUpsertedReferences(MsBuildConditionalConstructWhenElement record)
        {
            record.MsBuildCondition = await _conditions.UpsertAsync(record.MsBuildCondition);

            record.MsBuildConditionId = record.MsBuildCondition?.MsBuildConditionId ?? record.MsBuildConditionId;
            record.MsBuildConditionalContructItemGroupPropertyGroupSection = await _sections.UpsertAsync(record.MsBuildConditionalContructItemGroupPropertyGroupSection);

            record.MsBuildConditionalContructItemGroupPropertyGroupSectionId = record.MsBuildConditionalContructItemGroupPropertyGroupSection?.MsBuildConditionalContructItemGroupPropertyGroupSectionId ?? record.MsBuildConditionalContructItemGroupPropertyGroupSectionId;
            return(record);
        }