protected override IEnumerable <object> EnumerateReferences(MsBuildItem record) { yield return(record.ElementName); yield return(record.MsBuildCondition); yield return(record.MsBuildItemAttributeList); }
protected override async Task <MsBuildItem> AssignUpsertedReferences(MsBuildItem record) { record.ElementName = await _strings.UpsertAsync(record.ElementName); record.ElementNameId = record.ElementName?.AsciiStringReferenceId ?? record.ElementNameId; record.MsBuildCondition = await _conditions.UpsertAsync(record.MsBuildCondition); record.MsBuildConditionId = record.MsBuildCondition?.MsBuildConditionId ?? record.MsBuildConditionId; record.MsBuildItemAttributeList = await _attributes.UpsertAsync(record.MsBuildItemAttributeList); record.MsBuildItemAttributeListId = record.MsBuildItemAttributeList?.MsBuildItemAttributeListId ?? record.MsBuildItemAttributeListId; return(record); }
protected override Expression <Func <MsBuildItem, bool> > FindExisting(MsBuildItem record) => existing => existing.ElementNameId == record.ElementNameId && existing.MsBuildItemAttributeListId == record.MsBuildItemAttributeListId && ((existing.MsBuildConditionId == null && record.MsBuildConditionId == null) || (existing.MsBuildConditionId == record.MsBuildConditionId));