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

            yield return(record.MsBuildPropertyList);
        }
 protected override Expression <Func <MsBuildPropertyGroup, bool> > FindExisting(MsBuildPropertyGroup record)
 => existing
 => existing.MsBuildPropertyListId == record.MsBuildPropertyListId &&
 ((existing.MsBuildConditionId == null && record.MsBuildConditionId == null) || (existing.MsBuildConditionId == record.MsBuildConditionId));
        protected override async Task <MsBuildPropertyGroup> AssignUpsertedReferences(MsBuildPropertyGroup record)
        {
            record.MsBuildCondition = await _conditions.UpsertAsync(record.MsBuildCondition);

            record.MsBuildConditionId  = record.MsBuildCondition?.MsBuildConditionId ?? record.MsBuildConditionId;
            record.MsBuildPropertyList = await _properties.UpsertAsync(record.MsBuildPropertyList);

            record.MsBuildPropertyListId = record.MsBuildPropertyList?.MsBuildPropertyListId ?? record.MsBuildPropertyListId;
            return(record);
        }