protected override IEnumerable <object> EnumerateReferences(MsBuildTaskAttribute record)
        {
            yield return(record.Attribute);

            yield return(record.Value);
        }
 protected override Expression <Func <MsBuildTaskAttribute, bool> > FindExisting(MsBuildTaskAttribute record)
 => existing
 => existing.AttributeId == record.AttributeId &&
 existing.ValueId == record.ValueId;
        protected override async Task <MsBuildTaskAttribute> AssignUpsertedReferences(MsBuildTaskAttribute record)
        {
            record.Attribute = await _strings.UpsertAsync(record.Attribute);

            record.AttributeId = record.Attribute?.AsciiStringReferenceId ?? record.AttributeId;
            record.Value       = await _strings.UpsertAsync(record.Value);

            record.ValueId = record.Value?.AsciiStringReferenceId ?? record.ValueId;
            return(record);
        }