From 5588929ef6b36f5e58ff1b3f23b47f367c1a5997 Mon Sep 17 00:00:00 2001 From: atheate Date: Tue, 25 Aug 2026 13:18:17 +0200 Subject: [PATCH] Fix #349 --- .../AnnotatingElementExtensions.cs | 9 +-- .../AssociationExtensions.cs | 18 +++--- .../DependencyExtensions.cs | 32 +++++----- .../EnumerationDefinitionExtensions.cs | 9 +-- .../AutoGenPocoExtension/FeatureExtensions.cs | 9 +-- .../FeatureTypingExtensions.cs | 18 +++--- .../AutoGenPocoExtension/FlowExtensions.cs | 18 +++--- .../FramedConcernMembershipExtensions.cs | 18 +++--- .../LiteralIntegerExtensions.cs | 9 +-- .../LiteralRationalExtensions.cs | 9 +-- .../MembershipExtensions.cs | 18 +++--- .../MultiplicityRangeExtensions.cs | 9 +-- .../OwningMembershipExtensions.cs | 18 +++--- .../ReferenceSubsettingExtensions.cs | 18 +++--- .../RequirementUsageExtensions.cs | 9 +-- .../SelectExpressionExtensions.cs | 9 +-- .../SubclassificationExtensions.cs | 18 +++--- .../TextualRepresentationExtensions.cs | 9 +-- .../AutoGenPocoExtension/UsageExtensions.cs | 9 +-- .../Uml/core-dal-poco-uml-extensions.hbs | 15 ++--- SysML2.NET.Dal.Tests/AssemblerTestFixture.cs | 58 +++++++++++++++++++ .../AcceptActionUsageExtensions.cs | 9 +-- .../ActionDefinitionExtensions.cs | 9 +-- .../ActionUsageExtensions.cs | 9 +-- .../ActorMembershipExtensions.cs | 18 +++--- .../AllocationDefinitionExtensions.cs | 18 +++--- .../AllocationUsageExtensions.cs | 18 +++--- .../AnalysisCaseDefinitionExtensions.cs | 9 +-- .../AnalysisCaseUsageExtensions.cs | 9 +-- .../AnnotatingElementExtensions.cs | 9 +-- .../AnnotationExtensions.cs | 18 +++--- .../AssertConstraintUsageExtensions.cs | 9 +-- .../AssignmentActionUsageExtensions.cs | 9 +-- .../AssociationExtensions.cs | 18 +++--- .../AssociationStructureExtensions.cs | 18 +++--- .../AttributeDefinitionExtensions.cs | 9 +-- .../AttributeUsageExtensions.cs | 9 +-- .../BehaviorExtensions.cs | 9 +-- .../BindingConnectorAsUsageExtensions.cs | 18 +++--- .../BindingConnectorExtensions.cs | 18 +++--- .../BooleanExpressionExtensions.cs | 9 +-- .../CalculationDefinitionExtensions.cs | 9 +-- .../CalculationUsageExtensions.cs | 9 +-- .../CaseDefinitionExtensions.cs | 9 +-- .../CaseUsageExtensions.cs | 9 +-- .../AutoGenPocoExtension/ClassExtensions.cs | 9 +-- .../ClassifierExtensions.cs | 9 +-- .../CollectExpressionExtensions.cs | 9 +-- .../AutoGenPocoExtension/CommentExtensions.cs | 9 +-- .../ConcernDefinitionExtensions.cs | 9 +-- .../ConcernUsageExtensions.cs | 9 +-- .../ConjugatedPortDefinitionExtensions.cs | 9 +-- .../ConjugatedPortTypingExtensions.cs | 18 +++--- .../ConjugationExtensions.cs | 18 +++--- .../ConnectionDefinitionExtensions.cs | 18 +++--- .../ConnectionUsageExtensions.cs | 18 +++--- .../ConnectorExtensions.cs | 18 +++--- .../ConstraintDefinitionExtensions.cs | 9 +-- .../ConstraintUsageExtensions.cs | 9 +-- .../ConstructorExpressionExtensions.cs | 9 +-- .../CrossSubsettingExtensions.cs | 18 +++--- .../DataTypeExtensions.cs | 9 +-- .../DecisionNodeExtensions.cs | 9 +-- .../DefinitionExtensions.cs | 9 +-- .../DependencyExtensions.cs | 32 +++++----- .../DifferencingExtensions.cs | 18 +++--- .../DisjoiningExtensions.cs | 18 +++--- .../DocumentationExtensions.cs | 9 +-- .../ElementFilterMembershipExtensions.cs | 18 +++--- .../EndFeatureMembershipExtensions.cs | 18 +++--- .../EnumerationDefinitionExtensions.cs | 9 +-- .../EnumerationUsageExtensions.cs | 9 +-- .../EventOccurrenceUsageExtensions.cs | 9 +-- .../ExhibitStateUsageExtensions.cs | 9 +-- .../ExpressionExtensions.cs | 9 +-- .../FeatureChainExpressionExtensions.cs | 9 +-- .../FeatureChainingExtensions.cs | 18 +++--- .../AutoGenPocoExtension/FeatureExtensions.cs | 9 +-- .../FeatureInvertingExtensions.cs | 18 +++--- .../FeatureMembershipExtensions.cs | 18 +++--- .../FeatureReferenceExpressionExtensions.cs | 9 +-- .../FeatureTypingExtensions.cs | 18 +++--- .../FeatureValueExtensions.cs | 18 +++--- .../FlowDefinitionExtensions.cs | 18 +++--- .../AutoGenPocoExtension/FlowEndExtensions.cs | 9 +-- .../AutoGenPocoExtension/FlowExtensions.cs | 18 +++--- .../FlowUsageExtensions.cs | 18 +++--- .../ForLoopActionUsageExtensions.cs | 9 +-- .../ForkNodeExtensions.cs | 9 +-- .../FramedConcernMembershipExtensions.cs | 18 +++--- .../FunctionExtensions.cs | 9 +-- .../IfActionUsageExtensions.cs | 9 +-- .../IncludeUseCaseUsageExtensions.cs | 9 +-- .../IndexExpressionExtensions.cs | 9 +-- .../InteractionExtensions.cs | 18 +++--- .../InterfaceDefinitionExtensions.cs | 18 +++--- .../InterfaceUsageExtensions.cs | 18 +++--- .../IntersectingExtensions.cs | 18 +++--- .../InvariantExtensions.cs | 9 +-- .../InvocationExpressionExtensions.cs | 9 +-- .../ItemDefinitionExtensions.cs | 9 +-- .../ItemUsageExtensions.cs | 9 +-- .../JoinNodeExtensions.cs | 9 +-- .../LibraryPackageExtensions.cs | 9 +-- .../LiteralBooleanExtensions.cs | 9 +-- .../LiteralExpressionExtensions.cs | 9 +-- .../LiteralInfinityExtensions.cs | 9 +-- .../LiteralIntegerExtensions.cs | 9 +-- .../LiteralRationalExtensions.cs | 9 +-- .../LiteralStringExtensions.cs | 9 +-- .../MembershipExposeExtensions.cs | 18 +++--- .../MembershipExtensions.cs | 18 +++--- .../MembershipImportExtensions.cs | 18 +++--- .../MergeNodeExtensions.cs | 9 +-- .../MetaclassExtensions.cs | 9 +-- .../MetadataAccessExpressionExtensions.cs | 9 +-- .../MetadataDefinitionExtensions.cs | 9 +-- .../MetadataFeatureExtensions.cs | 9 +-- .../MetadataUsageExtensions.cs | 9 +-- .../MultiplicityExtensions.cs | 9 +-- .../MultiplicityRangeExtensions.cs | 9 +-- .../NamespaceExposeExtensions.cs | 18 +++--- .../NamespaceExtensions.cs | 9 +-- .../NamespaceImportExtensions.cs | 18 +++--- .../NullExpressionExtensions.cs | 9 +-- .../ObjectiveMembershipExtensions.cs | 18 +++--- .../OccurrenceDefinitionExtensions.cs | 9 +-- .../OccurrenceUsageExtensions.cs | 9 +-- .../OperatorExpressionExtensions.cs | 9 +-- .../OwningMembershipExtensions.cs | 18 +++--- .../AutoGenPocoExtension/PackageExtensions.cs | 9 +-- .../ParameterMembershipExtensions.cs | 18 +++--- .../PartDefinitionExtensions.cs | 9 +-- .../PartUsageExtensions.cs | 9 +-- .../PayloadFeatureExtensions.cs | 9 +-- .../PerformActionUsageExtensions.cs | 9 +-- .../PortConjugationExtensions.cs | 18 +++--- .../PortDefinitionExtensions.cs | 9 +-- .../PortUsageExtensions.cs | 9 +-- .../PredicateExtensions.cs | 9 +-- .../RedefinitionExtensions.cs | 18 +++--- .../ReferenceSubsettingExtensions.cs | 18 +++--- .../ReferenceUsageExtensions.cs | 9 +-- .../RenderingDefinitionExtensions.cs | 9 +-- .../RenderingUsageExtensions.cs | 9 +-- ...quirementConstraintMembershipExtensions.cs | 18 +++--- .../RequirementDefinitionExtensions.cs | 9 +-- .../RequirementUsageExtensions.cs | 9 +-- ...irementVerificationMembershipExtensions.cs | 18 +++--- .../ResultExpressionMembershipExtensions.cs | 18 +++--- .../ReturnParameterMembershipExtensions.cs | 18 +++--- .../SatisfyRequirementUsageExtensions.cs | 9 +-- .../SelectExpressionExtensions.cs | 9 +-- .../SendActionUsageExtensions.cs | 9 +-- .../SpecializationExtensions.cs | 18 +++--- .../StakeholderMembershipExtensions.cs | 18 +++--- .../StateDefinitionExtensions.cs | 9 +-- .../StateSubactionMembershipExtensions.cs | 18 +++--- .../StateUsageExtensions.cs | 9 +-- .../AutoGenPocoExtension/StepExtensions.cs | 9 +-- .../StructureExtensions.cs | 9 +-- .../SubclassificationExtensions.cs | 18 +++--- .../SubjectMembershipExtensions.cs | 18 +++--- .../SubsettingExtensions.cs | 18 +++--- .../SuccessionAsUsageExtensions.cs | 18 +++--- .../SuccessionExtensions.cs | 18 +++--- .../SuccessionFlowExtensions.cs | 18 +++--- .../SuccessionFlowUsageExtensions.cs | 18 +++--- .../TerminateActionUsageExtensions.cs | 9 +-- .../TextualRepresentationExtensions.cs | 9 +-- .../TransitionFeatureMembershipExtensions.cs | 18 +++--- .../TransitionUsageExtensions.cs | 9 +-- .../TriggerInvocationExpressionExtensions.cs | 9 +-- .../AutoGenPocoExtension/TypeExtensions.cs | 9 +-- .../TypeFeaturingExtensions.cs | 18 +++--- .../UnioningExtensions.cs | 18 +++--- .../AutoGenPocoExtension/UsageExtensions.cs | 9 +-- .../UseCaseDefinitionExtensions.cs | 9 +-- .../UseCaseUsageExtensions.cs | 9 +-- .../VariantMembershipExtensions.cs | 18 +++--- .../VerificationCaseDefinitionExtensions.cs | 9 +-- .../VerificationCaseUsageExtensions.cs | 9 +-- .../ViewDefinitionExtensions.cs | 9 +-- .../ViewRenderingMembershipExtensions.cs | 18 +++--- .../ViewUsageExtensions.cs | 9 +-- .../ViewpointDefinitionExtensions.cs | 9 +-- .../ViewpointUsageExtensions.cs | 9 +-- .../WhileLoopActionUsageExtensions.cs | 9 +-- 188 files changed, 1367 insertions(+), 1047 deletions(-) diff --git a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/AnnotatingElementExtensions.cs b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/AnnotatingElementExtensions.cs index 80b283d1f..f26e3bc75 100644 --- a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/AnnotatingElementExtensions.cs +++ b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/AnnotatingElementExtensions.cs @@ -78,14 +78,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsImpliedIncluded = dto.IsImpliedIncluded; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/AssociationExtensions.cs b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/AssociationExtensions.cs index 9f7cb5157..dd8fc6954 100644 --- a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/AssociationExtensions.cs +++ b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/AssociationExtensions.cs @@ -84,23 +84,25 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsSufficient = dto.IsSufficient; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/DependencyExtensions.cs b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/DependencyExtensions.cs index d3b2b7c08..4a5c0196e 100644 --- a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/DependencyExtensions.cs +++ b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/DependencyExtensions.cs @@ -70,11 +70,12 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.AliasIds = dto.AliasIds; - var clientToDelete = poco.Client.Select(x => x.Id).Except(dto.Client); + var clientRetained = new HashSet(dto.Client); + var clientToDelete = poco.Client.Where(x => !clientRetained.Contains(x.Id)).ToList(); - foreach (var identifier in clientToDelete) + foreach (var client in clientToDelete) { - poco.Client.Remove(poco.Client.Single(x => x.Id == identifier)); + poco.Client.Remove(client); } @@ -88,29 +89,32 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsImpliedIncluded = dto.IsImpliedIncluded; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); - var supplierToDelete = poco.Supplier.Select(x => x.Id).Except(dto.Supplier); + var supplierRetained = new HashSet(dto.Supplier); + var supplierToDelete = poco.Supplier.Where(x => !supplierRetained.Contains(x.Id)).ToList(); - foreach (var identifier in supplierToDelete) + foreach (var supplier in supplierToDelete) { - poco.Supplier.Remove(poco.Supplier.Single(x => x.Id == identifier)); + poco.Supplier.Remove(supplier); } diff --git a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/EnumerationDefinitionExtensions.cs b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/EnumerationDefinitionExtensions.cs index 02f8ccf9f..645cc7e93 100644 --- a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/EnumerationDefinitionExtensions.cs +++ b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/EnumerationDefinitionExtensions.cs @@ -84,14 +84,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/FeatureExtensions.cs b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/FeatureExtensions.cs index 26345175d..faa4b6cd0 100644 --- a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/FeatureExtensions.cs +++ b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/FeatureExtensions.cs @@ -100,14 +100,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariable = dto.IsVariable; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/FeatureTypingExtensions.cs b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/FeatureTypingExtensions.cs index 7847dad5b..a92295874 100644 --- a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/FeatureTypingExtensions.cs +++ b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/FeatureTypingExtensions.cs @@ -80,23 +80,25 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsImpliedIncluded = dto.IsImpliedIncluded; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/FlowExtensions.cs b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/FlowExtensions.cs index 22260590d..c21dda3fd 100644 --- a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/FlowExtensions.cs +++ b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/FlowExtensions.cs @@ -102,23 +102,25 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariable = dto.IsVariable; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/FramedConcernMembershipExtensions.cs b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/FramedConcernMembershipExtensions.cs index a2e34e7db..e9eaffb3b 100644 --- a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/FramedConcernMembershipExtensions.cs +++ b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/FramedConcernMembershipExtensions.cs @@ -82,23 +82,25 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.Kind = dto.Kind; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.Visibility = dto.Visibility; diff --git a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/LiteralIntegerExtensions.cs b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/LiteralIntegerExtensions.cs index d44cb165f..4a79a63b1 100644 --- a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/LiteralIntegerExtensions.cs +++ b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/LiteralIntegerExtensions.cs @@ -100,14 +100,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariable = dto.IsVariable; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.Value = dto.Value; diff --git a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/LiteralRationalExtensions.cs b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/LiteralRationalExtensions.cs index a69010fb3..70a2dc1cc 100644 --- a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/LiteralRationalExtensions.cs +++ b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/LiteralRationalExtensions.cs @@ -100,14 +100,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariable = dto.IsVariable; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.Value = dto.Value; diff --git a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/MembershipExtensions.cs b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/MembershipExtensions.cs index a60876c51..cd0170c07 100644 --- a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/MembershipExtensions.cs +++ b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/MembershipExtensions.cs @@ -84,23 +84,25 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.MemberShortName = dto.MemberShortName; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.Visibility = dto.Visibility; diff --git a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/MultiplicityRangeExtensions.cs b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/MultiplicityRangeExtensions.cs index cb20e2e24..df691508e 100644 --- a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/MultiplicityRangeExtensions.cs +++ b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/MultiplicityRangeExtensions.cs @@ -100,14 +100,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariable = dto.IsVariable; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/OwningMembershipExtensions.cs b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/OwningMembershipExtensions.cs index ccfdc3f56..cfcafb365 100644 --- a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/OwningMembershipExtensions.cs +++ b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/OwningMembershipExtensions.cs @@ -80,23 +80,25 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsImpliedIncluded = dto.IsImpliedIncluded; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.Visibility = dto.Visibility; diff --git a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/ReferenceSubsettingExtensions.cs b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/ReferenceSubsettingExtensions.cs index 6ebaf170a..06ddf40f3 100644 --- a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/ReferenceSubsettingExtensions.cs +++ b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/ReferenceSubsettingExtensions.cs @@ -80,23 +80,25 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsImpliedIncluded = dto.IsImpliedIncluded; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/RequirementUsageExtensions.cs b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/RequirementUsageExtensions.cs index 865a4ee0e..f800148f3 100644 --- a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/RequirementUsageExtensions.cs +++ b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/RequirementUsageExtensions.cs @@ -100,14 +100,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.PortionKind = dto.PortionKind; diff --git a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/SelectExpressionExtensions.cs b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/SelectExpressionExtensions.cs index 6d421bbc7..ac66fa88c 100644 --- a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/SelectExpressionExtensions.cs +++ b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/SelectExpressionExtensions.cs @@ -102,14 +102,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.Operator = dto.Operator; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/SubclassificationExtensions.cs b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/SubclassificationExtensions.cs index 732ecf96e..306d890e7 100644 --- a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/SubclassificationExtensions.cs +++ b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/SubclassificationExtensions.cs @@ -80,23 +80,25 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsImpliedIncluded = dto.IsImpliedIncluded; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/TextualRepresentationExtensions.cs b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/TextualRepresentationExtensions.cs index 903aa3bad..d63336d1f 100644 --- a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/TextualRepresentationExtensions.cs +++ b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/TextualRepresentationExtensions.cs @@ -82,14 +82,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.Language = dto.Language; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/UsageExtensions.cs b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/UsageExtensions.cs index a9a1b12ef..eab7355c6 100644 --- a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/UsageExtensions.cs +++ b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPocoExtension/UsageExtensions.cs @@ -100,14 +100,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.CodeGenerator/Templates/Uml/core-dal-poco-uml-extensions.hbs b/SysML2.NET.CodeGenerator/Templates/Uml/core-dal-poco-uml-extensions.hbs index c35baede9..40b2397b9 100644 --- a/SysML2.NET.CodeGenerator/Templates/Uml/core-dal-poco-uml-extensions.hbs +++ b/SysML2.NET.CodeGenerator/Templates/Uml/core-dal-poco-uml-extensions.hbs @@ -75,19 +75,20 @@ namespace SysML2.NET.Dal {{#unless (Property.IsPropertyRedefinedInClass this class)}} {{#if (Property.QueryIsReferenceProperty property)}} {{#if (Property.QueryIsEnumerable property) }} - var {{ property.Name}}ToDelete = poco.{{ String.PascalCase property.Name}}.Select(x => x.Id).Except(dto.{{ String.PascalCase property.Name}}); - - foreach (var identifier in {{ property.Name}}ToDelete) + var {{ property.Name}}Retained = new HashSet(dto.{{ String.PascalCase property.Name}}); + var {{ property.Name}}ToDelete = poco.{{ String.PascalCase property.Name}}.Where(x => !{{ property.Name}}Retained.Contains(x.Id)).ToList(); + + foreach (var {{ property.Name}} in {{ property.Name}}ToDelete) { {{#if property.IsComposite }} - ((IContained{{property.Owner.Name}})poco).{{ String.PascalCase property.Name}}.Remove(poco.{{ String.PascalCase property.Name}}.Single(x => x.Id == identifier)); + ((IContained{{property.Owner.Name}})poco).{{ String.PascalCase property.Name}}.Remove({{ property.Name}}); {{else}} - poco.{{ String.PascalCase property.Name}}.Remove(poco.{{ String.PascalCase property.Name}}.Single(x => x.Id == identifier)); + poco.{{ String.PascalCase property.Name}}.Remove({{ property.Name}}); {{/if}} } - + {{#if property.IsComposite }} - identifiersOfObjectsToDelete.AddRange({{ property.Name}}ToDelete); + identifiersOfObjectsToDelete.AddRange({{ property.Name}}ToDelete.Select(x => x.Id)); {{/if}} {{/if}} diff --git a/SysML2.NET.Dal.Tests/AssemblerTestFixture.cs b/SysML2.NET.Dal.Tests/AssemblerTestFixture.cs index e4e08e27e..d2220bcef 100644 --- a/SysML2.NET.Dal.Tests/AssemblerTestFixture.cs +++ b/SysML2.NET.Dal.Tests/AssemblerTestFixture.cs @@ -167,6 +167,64 @@ public void Synchronize_WithDuplicateIdentifiers_KeepsTheFirstDto() } } + [Test] + public void Synchronize_WithRemovedOwnedRelationship_RemovesThePocoFromTheCache() + { + var ownerId = Guid.Parse("1b7c1f14-9a2e-4c8d-8f3b-2c6e0d5a4b91"); + var membershipId = Guid.Parse("2c8d2f25-8b3f-4d9e-9a4c-3d7f1e6b5c02"); + var packageId = Guid.Parse("3d9e3f36-7c4a-4eaf-8b5d-4e802f7c6d13"); + + var ownerDto = new Core.DTO.Kernel.Packages.Package + { + Id = ownerId, + DeclaredName = "the owner", + ElementId = ownerId.ToString(), + OwnedRelationship = [membershipId] + }; + + var membershipDto = new Core.DTO.Root.Namespaces.OwningMembership + { + Id = membershipId, + OwnedRelatedElement = [packageId], + OwningRelatedElement = ownerId + }; + + var packageDto = new Core.DTO.Kernel.Packages.Package + { + Id = packageId, + DeclaredName = "the owned package", + ElementId = packageId.ToString(), + OwningRelationship = membershipId + }; + + this.assembler.Synchronize([ownerDto, membershipDto, packageDto]); + + Core.POCO.Kernel.Packages.Package ownerPoco = null; + + if (this.assembler.Cache.TryGetValue(ownerId, out this.lazyPoco)) + { + ownerPoco = (Core.POCO.Kernel.Packages.Package)this.lazyPoco.Value; + } + + using (Assert.EnterMultipleScope()) + { + Assert.That(this.assembler.Cache, Has.Count.EqualTo(3)); + Assert.That(ownerPoco.OwnedRelationship, Has.Count.EqualTo(1)); + } + + // drop the membership from the owner and from the delta, which is what a server-side removal looks like + ownerDto.OwnedRelationship = []; + + Assert.That(() => this.assembler.Synchronize([ownerDto, packageDto]), Throws.Nothing); + + using (Assert.EnterMultipleScope()) + { + Assert.That(ownerPoco.OwnedRelationship, Has.Count.EqualTo(0)); + Assert.That(this.assembler.Cache.ContainsKey(membershipId), Is.False); + Assert.That(this.assembler.Cache, Has.Count.EqualTo(2)); + } + } + [Test] public void Synchronize_WithGrowingDtoSequence_DoesNotRescanTheSequencePerElement() { diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/AcceptActionUsageExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/AcceptActionUsageExtensions.cs index 49a18cf42..d8e22a29d 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/AcceptActionUsageExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/AcceptActionUsageExtensions.cs @@ -102,14 +102,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.PortionKind = dto.PortionKind; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/ActionDefinitionExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/ActionDefinitionExtensions.cs index 252bdbb0b..244d39374 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/ActionDefinitionExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/ActionDefinitionExtensions.cs @@ -86,14 +86,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/ActionUsageExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/ActionUsageExtensions.cs index 9c8f24e78..f43139311 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/ActionUsageExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/ActionUsageExtensions.cs @@ -102,14 +102,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.PortionKind = dto.PortionKind; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/ActorMembershipExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/ActorMembershipExtensions.cs index 1cfec7d35..1a02bae29 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/ActorMembershipExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/ActorMembershipExtensions.cs @@ -80,23 +80,25 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsImpliedIncluded = dto.IsImpliedIncluded; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.Visibility = dto.Visibility; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/AllocationDefinitionExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/AllocationDefinitionExtensions.cs index 877381cee..9d9ed7dee 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/AllocationDefinitionExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/AllocationDefinitionExtensions.cs @@ -88,23 +88,25 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/AllocationUsageExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/AllocationUsageExtensions.cs index d663e8b24..31d9aaa75 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/AllocationUsageExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/AllocationUsageExtensions.cs @@ -104,23 +104,25 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.PortionKind = dto.PortionKind; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/AnalysisCaseDefinitionExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/AnalysisCaseDefinitionExtensions.cs index 21d4067eb..9af5400d8 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/AnalysisCaseDefinitionExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/AnalysisCaseDefinitionExtensions.cs @@ -86,14 +86,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/AnalysisCaseUsageExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/AnalysisCaseUsageExtensions.cs index 9b71d668c..05334d966 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/AnalysisCaseUsageExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/AnalysisCaseUsageExtensions.cs @@ -102,14 +102,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.PortionKind = dto.PortionKind; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/AnnotatingElementExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/AnnotatingElementExtensions.cs index 63f208507..f6646e9e7 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/AnnotatingElementExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/AnnotatingElementExtensions.cs @@ -78,14 +78,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsImpliedIncluded = dto.IsImpliedIncluded; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/AnnotationExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/AnnotationExtensions.cs index 2d51cbee0..3b695b46a 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/AnnotationExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/AnnotationExtensions.cs @@ -80,23 +80,25 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsImpliedIncluded = dto.IsImpliedIncluded; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/AssertConstraintUsageExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/AssertConstraintUsageExtensions.cs index 332da81a2..5d1cd0523 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/AssertConstraintUsageExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/AssertConstraintUsageExtensions.cs @@ -104,14 +104,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.PortionKind = dto.PortionKind; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/AssignmentActionUsageExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/AssignmentActionUsageExtensions.cs index 22c37d882..a30903976 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/AssignmentActionUsageExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/AssignmentActionUsageExtensions.cs @@ -102,14 +102,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.PortionKind = dto.PortionKind; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/AssociationExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/AssociationExtensions.cs index 95276a266..b87b6fa61 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/AssociationExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/AssociationExtensions.cs @@ -84,23 +84,25 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsSufficient = dto.IsSufficient; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/AssociationStructureExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/AssociationStructureExtensions.cs index 06dddd551..f7bdeb8a4 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/AssociationStructureExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/AssociationStructureExtensions.cs @@ -84,23 +84,25 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsSufficient = dto.IsSufficient; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/AttributeDefinitionExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/AttributeDefinitionExtensions.cs index 252644f55..c3f67bc37 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/AttributeDefinitionExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/AttributeDefinitionExtensions.cs @@ -84,14 +84,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/AttributeUsageExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/AttributeUsageExtensions.cs index 9b472572e..4d222df6e 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/AttributeUsageExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/AttributeUsageExtensions.cs @@ -100,14 +100,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/BehaviorExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/BehaviorExtensions.cs index 45484197d..79c8c8dd2 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/BehaviorExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/BehaviorExtensions.cs @@ -82,14 +82,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsSufficient = dto.IsSufficient; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/BindingConnectorAsUsageExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/BindingConnectorAsUsageExtensions.cs index 7e7795487..00898e044 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/BindingConnectorAsUsageExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/BindingConnectorAsUsageExtensions.cs @@ -102,23 +102,25 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/BindingConnectorExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/BindingConnectorExtensions.cs index 065f9068d..17b65d632 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/BindingConnectorExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/BindingConnectorExtensions.cs @@ -102,23 +102,25 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariable = dto.IsVariable; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/BooleanExpressionExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/BooleanExpressionExtensions.cs index 3b48fa81f..bef97ee5b 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/BooleanExpressionExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/BooleanExpressionExtensions.cs @@ -100,14 +100,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariable = dto.IsVariable; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/CalculationDefinitionExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/CalculationDefinitionExtensions.cs index 62480c5ec..40ce6b6c2 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/CalculationDefinitionExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/CalculationDefinitionExtensions.cs @@ -86,14 +86,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/CalculationUsageExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/CalculationUsageExtensions.cs index 6a00da5f1..2eea3b950 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/CalculationUsageExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/CalculationUsageExtensions.cs @@ -102,14 +102,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.PortionKind = dto.PortionKind; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/CaseDefinitionExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/CaseDefinitionExtensions.cs index 62c2fb6b5..dc34028e0 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/CaseDefinitionExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/CaseDefinitionExtensions.cs @@ -86,14 +86,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/CaseUsageExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/CaseUsageExtensions.cs index 96da82d70..be17e7a7b 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/CaseUsageExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/CaseUsageExtensions.cs @@ -102,14 +102,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.PortionKind = dto.PortionKind; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/ClassExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/ClassExtensions.cs index 358327ce5..63cdb612c 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/ClassExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/ClassExtensions.cs @@ -82,14 +82,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsSufficient = dto.IsSufficient; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/ClassifierExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/ClassifierExtensions.cs index c538ecb47..0d7aba878 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/ClassifierExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/ClassifierExtensions.cs @@ -82,14 +82,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsSufficient = dto.IsSufficient; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/CollectExpressionExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/CollectExpressionExtensions.cs index ccba0346a..6f5543521 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/CollectExpressionExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/CollectExpressionExtensions.cs @@ -102,14 +102,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.Operator = dto.Operator; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/CommentExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/CommentExtensions.cs index ffee01dde..98c6fae6a 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/CommentExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/CommentExtensions.cs @@ -82,14 +82,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.Locale = dto.Locale; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/ConcernDefinitionExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/ConcernDefinitionExtensions.cs index 8f2751031..febe38847 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/ConcernDefinitionExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/ConcernDefinitionExtensions.cs @@ -84,14 +84,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.ReqId = dto.ReqId; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/ConcernUsageExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/ConcernUsageExtensions.cs index bc23461e6..191681cc2 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/ConcernUsageExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/ConcernUsageExtensions.cs @@ -100,14 +100,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.PortionKind = dto.PortionKind; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/ConjugatedPortDefinitionExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/ConjugatedPortDefinitionExtensions.cs index 1274a25a6..285876f3a 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/ConjugatedPortDefinitionExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/ConjugatedPortDefinitionExtensions.cs @@ -86,14 +86,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/ConjugatedPortTypingExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/ConjugatedPortTypingExtensions.cs index 3901df7bf..8e79f1d1c 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/ConjugatedPortTypingExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/ConjugatedPortTypingExtensions.cs @@ -80,23 +80,25 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsImpliedIncluded = dto.IsImpliedIncluded; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/ConjugationExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/ConjugationExtensions.cs index 31cb7d57b..ddff3e4c2 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/ConjugationExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/ConjugationExtensions.cs @@ -80,23 +80,25 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsImpliedIncluded = dto.IsImpliedIncluded; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/ConnectionDefinitionExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/ConnectionDefinitionExtensions.cs index f1c068a28..032a76f84 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/ConnectionDefinitionExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/ConnectionDefinitionExtensions.cs @@ -88,23 +88,25 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/ConnectionUsageExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/ConnectionUsageExtensions.cs index 9b812bb36..ca3f3cfd0 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/ConnectionUsageExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/ConnectionUsageExtensions.cs @@ -104,23 +104,25 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.PortionKind = dto.PortionKind; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/ConnectorExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/ConnectorExtensions.cs index b86d117e8..5265383cc 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/ConnectorExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/ConnectorExtensions.cs @@ -102,23 +102,25 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariable = dto.IsVariable; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/ConstraintDefinitionExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/ConstraintDefinitionExtensions.cs index 025d0cfef..f90d18657 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/ConstraintDefinitionExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/ConstraintDefinitionExtensions.cs @@ -86,14 +86,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/ConstraintUsageExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/ConstraintUsageExtensions.cs index a2b591b8a..4f4b85ad9 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/ConstraintUsageExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/ConstraintUsageExtensions.cs @@ -102,14 +102,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.PortionKind = dto.PortionKind; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/ConstructorExpressionExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/ConstructorExpressionExtensions.cs index 43fac7dd3..36a739a07 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/ConstructorExpressionExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/ConstructorExpressionExtensions.cs @@ -100,14 +100,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariable = dto.IsVariable; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/CrossSubsettingExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/CrossSubsettingExtensions.cs index f188662c9..d384c3828 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/CrossSubsettingExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/CrossSubsettingExtensions.cs @@ -80,23 +80,25 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsImpliedIncluded = dto.IsImpliedIncluded; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/DataTypeExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/DataTypeExtensions.cs index 14919a7e2..fdf07ce8c 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/DataTypeExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/DataTypeExtensions.cs @@ -82,14 +82,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsSufficient = dto.IsSufficient; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/DecisionNodeExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/DecisionNodeExtensions.cs index bd59effb0..e09272166 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/DecisionNodeExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/DecisionNodeExtensions.cs @@ -102,14 +102,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.PortionKind = dto.PortionKind; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/DefinitionExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/DefinitionExtensions.cs index c63686f1b..f7771777f 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/DefinitionExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/DefinitionExtensions.cs @@ -84,14 +84,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/DependencyExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/DependencyExtensions.cs index 8b7841942..7dcdd33e9 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/DependencyExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/DependencyExtensions.cs @@ -70,11 +70,12 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.AliasIds = dto.AliasIds; - var clientToDelete = poco.Client.Select(x => x.Id).Except(dto.Client); + var clientRetained = new HashSet(dto.Client); + var clientToDelete = poco.Client.Where(x => !clientRetained.Contains(x.Id)).ToList(); - foreach (var identifier in clientToDelete) + foreach (var client in clientToDelete) { - poco.Client.Remove(poco.Client.Single(x => x.Id == identifier)); + poco.Client.Remove(client); } @@ -88,29 +89,32 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsImpliedIncluded = dto.IsImpliedIncluded; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); - var supplierToDelete = poco.Supplier.Select(x => x.Id).Except(dto.Supplier); + var supplierRetained = new HashSet(dto.Supplier); + var supplierToDelete = poco.Supplier.Where(x => !supplierRetained.Contains(x.Id)).ToList(); - foreach (var identifier in supplierToDelete) + foreach (var supplier in supplierToDelete) { - poco.Supplier.Remove(poco.Supplier.Single(x => x.Id == identifier)); + poco.Supplier.Remove(supplier); } diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/DifferencingExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/DifferencingExtensions.cs index fc579570f..993f51553 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/DifferencingExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/DifferencingExtensions.cs @@ -80,23 +80,25 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsImpliedIncluded = dto.IsImpliedIncluded; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/DisjoiningExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/DisjoiningExtensions.cs index 83632bde2..9bec5a35b 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/DisjoiningExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/DisjoiningExtensions.cs @@ -80,23 +80,25 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsImpliedIncluded = dto.IsImpliedIncluded; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/DocumentationExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/DocumentationExtensions.cs index 857e21bd2..22319ff84 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/DocumentationExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/DocumentationExtensions.cs @@ -82,14 +82,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.Locale = dto.Locale; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/ElementFilterMembershipExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/ElementFilterMembershipExtensions.cs index 85ed61238..253357680 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/ElementFilterMembershipExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/ElementFilterMembershipExtensions.cs @@ -80,23 +80,25 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsImpliedIncluded = dto.IsImpliedIncluded; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.Visibility = dto.Visibility; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/EndFeatureMembershipExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/EndFeatureMembershipExtensions.cs index fe07ea4f5..c6445f33f 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/EndFeatureMembershipExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/EndFeatureMembershipExtensions.cs @@ -80,23 +80,25 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsImpliedIncluded = dto.IsImpliedIncluded; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.Visibility = dto.Visibility; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/EnumerationDefinitionExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/EnumerationDefinitionExtensions.cs index 0088bc7d9..1353805ce 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/EnumerationDefinitionExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/EnumerationDefinitionExtensions.cs @@ -84,14 +84,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/EnumerationUsageExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/EnumerationUsageExtensions.cs index 8be986a45..91df16758 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/EnumerationUsageExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/EnumerationUsageExtensions.cs @@ -100,14 +100,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/EventOccurrenceUsageExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/EventOccurrenceUsageExtensions.cs index 6ec601d9b..d9268707b 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/EventOccurrenceUsageExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/EventOccurrenceUsageExtensions.cs @@ -102,14 +102,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.PortionKind = dto.PortionKind; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/ExhibitStateUsageExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/ExhibitStateUsageExtensions.cs index 81b16d2f1..b8c5a70b1 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/ExhibitStateUsageExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/ExhibitStateUsageExtensions.cs @@ -104,14 +104,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.PortionKind = dto.PortionKind; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/ExpressionExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/ExpressionExtensions.cs index 30647bc40..85754668d 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/ExpressionExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/ExpressionExtensions.cs @@ -100,14 +100,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariable = dto.IsVariable; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/FeatureChainExpressionExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/FeatureChainExpressionExtensions.cs index 2028daaff..c7cf3e306 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/FeatureChainExpressionExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/FeatureChainExpressionExtensions.cs @@ -102,14 +102,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.Operator = dto.Operator; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/FeatureChainingExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/FeatureChainingExtensions.cs index 7d88d2848..e6c811c95 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/FeatureChainingExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/FeatureChainingExtensions.cs @@ -80,23 +80,25 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsImpliedIncluded = dto.IsImpliedIncluded; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/FeatureExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/FeatureExtensions.cs index bcd679b24..e950b7037 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/FeatureExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/FeatureExtensions.cs @@ -100,14 +100,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariable = dto.IsVariable; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/FeatureInvertingExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/FeatureInvertingExtensions.cs index c49432bac..c0e8b58ed 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/FeatureInvertingExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/FeatureInvertingExtensions.cs @@ -80,23 +80,25 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsImpliedIncluded = dto.IsImpliedIncluded; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/FeatureMembershipExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/FeatureMembershipExtensions.cs index e49249730..6451c7e09 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/FeatureMembershipExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/FeatureMembershipExtensions.cs @@ -80,23 +80,25 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsImpliedIncluded = dto.IsImpliedIncluded; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.Visibility = dto.Visibility; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/FeatureReferenceExpressionExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/FeatureReferenceExpressionExtensions.cs index 176b02d52..d0b61d667 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/FeatureReferenceExpressionExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/FeatureReferenceExpressionExtensions.cs @@ -100,14 +100,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariable = dto.IsVariable; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/FeatureTypingExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/FeatureTypingExtensions.cs index 9edb73725..85b4ef298 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/FeatureTypingExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/FeatureTypingExtensions.cs @@ -80,23 +80,25 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsImpliedIncluded = dto.IsImpliedIncluded; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/FeatureValueExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/FeatureValueExtensions.cs index 2a6815c29..e2b4b933d 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/FeatureValueExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/FeatureValueExtensions.cs @@ -84,23 +84,25 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsInitial = dto.IsInitial; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.Visibility = dto.Visibility; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/FlowDefinitionExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/FlowDefinitionExtensions.cs index 99c10415b..5dae1f719 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/FlowDefinitionExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/FlowDefinitionExtensions.cs @@ -88,23 +88,25 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/FlowEndExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/FlowEndExtensions.cs index ba8f9af54..94301b7da 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/FlowEndExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/FlowEndExtensions.cs @@ -100,14 +100,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariable = dto.IsVariable; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/FlowExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/FlowExtensions.cs index 22260590d..c21dda3fd 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/FlowExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/FlowExtensions.cs @@ -102,23 +102,25 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariable = dto.IsVariable; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/FlowUsageExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/FlowUsageExtensions.cs index 96b056bd6..ef813a64d 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/FlowUsageExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/FlowUsageExtensions.cs @@ -104,23 +104,25 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.PortionKind = dto.PortionKind; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/ForLoopActionUsageExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/ForLoopActionUsageExtensions.cs index 609f8474c..5ad6ef7d6 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/ForLoopActionUsageExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/ForLoopActionUsageExtensions.cs @@ -102,14 +102,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.PortionKind = dto.PortionKind; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/ForkNodeExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/ForkNodeExtensions.cs index cb5857c9c..641d3bf1b 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/ForkNodeExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/ForkNodeExtensions.cs @@ -102,14 +102,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.PortionKind = dto.PortionKind; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/FramedConcernMembershipExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/FramedConcernMembershipExtensions.cs index 789597a73..feabbf887 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/FramedConcernMembershipExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/FramedConcernMembershipExtensions.cs @@ -82,23 +82,25 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.Kind = dto.Kind; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.Visibility = dto.Visibility; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/FunctionExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/FunctionExtensions.cs index 4e19ef1df..a3b205651 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/FunctionExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/FunctionExtensions.cs @@ -82,14 +82,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsSufficient = dto.IsSufficient; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/IfActionUsageExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/IfActionUsageExtensions.cs index 75d40be0f..f73ddf701 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/IfActionUsageExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/IfActionUsageExtensions.cs @@ -102,14 +102,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.PortionKind = dto.PortionKind; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/IncludeUseCaseUsageExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/IncludeUseCaseUsageExtensions.cs index 416ad54ab..4bd11cad2 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/IncludeUseCaseUsageExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/IncludeUseCaseUsageExtensions.cs @@ -102,14 +102,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.PortionKind = dto.PortionKind; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/IndexExpressionExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/IndexExpressionExtensions.cs index f85789150..f9d94f0f8 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/IndexExpressionExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/IndexExpressionExtensions.cs @@ -102,14 +102,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.Operator = dto.Operator; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/InteractionExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/InteractionExtensions.cs index 1256c69a0..efb17e2c2 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/InteractionExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/InteractionExtensions.cs @@ -84,23 +84,25 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsSufficient = dto.IsSufficient; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/InterfaceDefinitionExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/InterfaceDefinitionExtensions.cs index acae85855..63a34a114 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/InterfaceDefinitionExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/InterfaceDefinitionExtensions.cs @@ -88,23 +88,25 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/InterfaceUsageExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/InterfaceUsageExtensions.cs index cb0f19964..602ef5cf7 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/InterfaceUsageExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/InterfaceUsageExtensions.cs @@ -104,23 +104,25 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.PortionKind = dto.PortionKind; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/IntersectingExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/IntersectingExtensions.cs index 379c64930..0233f2fbc 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/IntersectingExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/IntersectingExtensions.cs @@ -80,23 +80,25 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsImpliedIncluded = dto.IsImpliedIncluded; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/InvariantExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/InvariantExtensions.cs index 06961e91e..a6dff747b 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/InvariantExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/InvariantExtensions.cs @@ -102,14 +102,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariable = dto.IsVariable; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/InvocationExpressionExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/InvocationExpressionExtensions.cs index 936877194..01bfcf5b5 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/InvocationExpressionExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/InvocationExpressionExtensions.cs @@ -100,14 +100,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariable = dto.IsVariable; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/ItemDefinitionExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/ItemDefinitionExtensions.cs index 3f14016f2..5fd8cc5d1 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/ItemDefinitionExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/ItemDefinitionExtensions.cs @@ -86,14 +86,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/ItemUsageExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/ItemUsageExtensions.cs index 77af4d128..4ecf26817 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/ItemUsageExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/ItemUsageExtensions.cs @@ -102,14 +102,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.PortionKind = dto.PortionKind; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/JoinNodeExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/JoinNodeExtensions.cs index 8e969f198..e9f9040d7 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/JoinNodeExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/JoinNodeExtensions.cs @@ -102,14 +102,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.PortionKind = dto.PortionKind; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/LibraryPackageExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/LibraryPackageExtensions.cs index 029344b08..87afa0215 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/LibraryPackageExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/LibraryPackageExtensions.cs @@ -80,14 +80,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsStandard = dto.IsStandard; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/LiteralBooleanExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/LiteralBooleanExtensions.cs index fd7658533..6d3cbd159 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/LiteralBooleanExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/LiteralBooleanExtensions.cs @@ -100,14 +100,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariable = dto.IsVariable; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.Value = dto.Value; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/LiteralExpressionExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/LiteralExpressionExtensions.cs index f142cbeae..26dd7e602 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/LiteralExpressionExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/LiteralExpressionExtensions.cs @@ -100,14 +100,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariable = dto.IsVariable; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/LiteralInfinityExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/LiteralInfinityExtensions.cs index b382be339..addc633a9 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/LiteralInfinityExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/LiteralInfinityExtensions.cs @@ -100,14 +100,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariable = dto.IsVariable; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/LiteralIntegerExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/LiteralIntegerExtensions.cs index b2699f121..feefe9c11 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/LiteralIntegerExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/LiteralIntegerExtensions.cs @@ -100,14 +100,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariable = dto.IsVariable; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.Value = dto.Value; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/LiteralRationalExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/LiteralRationalExtensions.cs index 979eef02c..e91f08ed2 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/LiteralRationalExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/LiteralRationalExtensions.cs @@ -100,14 +100,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariable = dto.IsVariable; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.Value = dto.Value; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/LiteralStringExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/LiteralStringExtensions.cs index cd383ff62..f76b14b14 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/LiteralStringExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/LiteralStringExtensions.cs @@ -100,14 +100,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariable = dto.IsVariable; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.Value = dto.Value; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/MembershipExposeExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/MembershipExposeExtensions.cs index f446d0bb5..ee495b42f 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/MembershipExposeExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/MembershipExposeExtensions.cs @@ -84,23 +84,25 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsRecursive = dto.IsRecursive; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.Visibility = dto.Visibility; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/MembershipExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/MembershipExtensions.cs index 2d1cacd23..ec5ff1c78 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/MembershipExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/MembershipExtensions.cs @@ -84,23 +84,25 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.MemberShortName = dto.MemberShortName; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.Visibility = dto.Visibility; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/MembershipImportExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/MembershipImportExtensions.cs index 852ea23be..0020993bf 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/MembershipImportExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/MembershipImportExtensions.cs @@ -84,23 +84,25 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsRecursive = dto.IsRecursive; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.Visibility = dto.Visibility; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/MergeNodeExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/MergeNodeExtensions.cs index 3519fcdad..f611c4d20 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/MergeNodeExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/MergeNodeExtensions.cs @@ -102,14 +102,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.PortionKind = dto.PortionKind; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/MetaclassExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/MetaclassExtensions.cs index 593744b71..b247194df 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/MetaclassExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/MetaclassExtensions.cs @@ -82,14 +82,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsSufficient = dto.IsSufficient; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/MetadataAccessExpressionExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/MetadataAccessExpressionExtensions.cs index 862c8ee6d..338a25afa 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/MetadataAccessExpressionExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/MetadataAccessExpressionExtensions.cs @@ -100,14 +100,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariable = dto.IsVariable; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/MetadataDefinitionExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/MetadataDefinitionExtensions.cs index fc9f317c9..b71fe9262 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/MetadataDefinitionExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/MetadataDefinitionExtensions.cs @@ -86,14 +86,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/MetadataFeatureExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/MetadataFeatureExtensions.cs index 7e4a5c449..94ef7a963 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/MetadataFeatureExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/MetadataFeatureExtensions.cs @@ -100,14 +100,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariable = dto.IsVariable; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/MetadataUsageExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/MetadataUsageExtensions.cs index 7c633ad9c..01d41241a 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/MetadataUsageExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/MetadataUsageExtensions.cs @@ -102,14 +102,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.PortionKind = dto.PortionKind; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/MultiplicityExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/MultiplicityExtensions.cs index 9efc5852c..eace04306 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/MultiplicityExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/MultiplicityExtensions.cs @@ -100,14 +100,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariable = dto.IsVariable; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/MultiplicityRangeExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/MultiplicityRangeExtensions.cs index 74aff17ce..13e788b29 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/MultiplicityRangeExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/MultiplicityRangeExtensions.cs @@ -100,14 +100,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariable = dto.IsVariable; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/NamespaceExposeExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/NamespaceExposeExtensions.cs index 829bd8307..05c3415c0 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/NamespaceExposeExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/NamespaceExposeExtensions.cs @@ -84,23 +84,25 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsRecursive = dto.IsRecursive; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.Visibility = dto.Visibility; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/NamespaceExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/NamespaceExtensions.cs index 8217f2f1d..03c6d7069 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/NamespaceExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/NamespaceExtensions.cs @@ -78,14 +78,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsImpliedIncluded = dto.IsImpliedIncluded; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/NamespaceImportExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/NamespaceImportExtensions.cs index 292bcfea5..e32cccb3d 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/NamespaceImportExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/NamespaceImportExtensions.cs @@ -84,23 +84,25 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsRecursive = dto.IsRecursive; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.Visibility = dto.Visibility; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/NullExpressionExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/NullExpressionExtensions.cs index f93869e2e..a52e00faf 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/NullExpressionExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/NullExpressionExtensions.cs @@ -100,14 +100,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariable = dto.IsVariable; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/ObjectiveMembershipExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/ObjectiveMembershipExtensions.cs index c46d5455a..94cdac89d 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/ObjectiveMembershipExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/ObjectiveMembershipExtensions.cs @@ -80,23 +80,25 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsImpliedIncluded = dto.IsImpliedIncluded; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.Visibility = dto.Visibility; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/OccurrenceDefinitionExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/OccurrenceDefinitionExtensions.cs index 72b17444e..547a948ac 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/OccurrenceDefinitionExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/OccurrenceDefinitionExtensions.cs @@ -86,14 +86,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/OccurrenceUsageExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/OccurrenceUsageExtensions.cs index bf6a0773b..1c5b844a5 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/OccurrenceUsageExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/OccurrenceUsageExtensions.cs @@ -102,14 +102,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.PortionKind = dto.PortionKind; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/OperatorExpressionExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/OperatorExpressionExtensions.cs index ba9583df4..6718d5299 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/OperatorExpressionExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/OperatorExpressionExtensions.cs @@ -102,14 +102,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.Operator = dto.Operator; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/OwningMembershipExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/OwningMembershipExtensions.cs index ba2d654e0..d3a67702b 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/OwningMembershipExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/OwningMembershipExtensions.cs @@ -80,23 +80,25 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsImpliedIncluded = dto.IsImpliedIncluded; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.Visibility = dto.Visibility; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/PackageExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/PackageExtensions.cs index 9d5c598d7..22421c7d6 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/PackageExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/PackageExtensions.cs @@ -78,14 +78,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsImpliedIncluded = dto.IsImpliedIncluded; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/ParameterMembershipExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/ParameterMembershipExtensions.cs index d6313e8e2..d99934707 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/ParameterMembershipExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/ParameterMembershipExtensions.cs @@ -80,23 +80,25 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsImpliedIncluded = dto.IsImpliedIncluded; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.Visibility = dto.Visibility; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/PartDefinitionExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/PartDefinitionExtensions.cs index d84adf4e8..09cf55cda 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/PartDefinitionExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/PartDefinitionExtensions.cs @@ -86,14 +86,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/PartUsageExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/PartUsageExtensions.cs index e9d6d9e94..b79ea7833 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/PartUsageExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/PartUsageExtensions.cs @@ -102,14 +102,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.PortionKind = dto.PortionKind; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/PayloadFeatureExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/PayloadFeatureExtensions.cs index 1c69d3146..c88c82f71 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/PayloadFeatureExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/PayloadFeatureExtensions.cs @@ -100,14 +100,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariable = dto.IsVariable; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/PerformActionUsageExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/PerformActionUsageExtensions.cs index 8b877ee5d..5c0625739 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/PerformActionUsageExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/PerformActionUsageExtensions.cs @@ -102,14 +102,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.PortionKind = dto.PortionKind; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/PortConjugationExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/PortConjugationExtensions.cs index ca50cb76d..58165b791 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/PortConjugationExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/PortConjugationExtensions.cs @@ -80,23 +80,25 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsImpliedIncluded = dto.IsImpliedIncluded; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/PortDefinitionExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/PortDefinitionExtensions.cs index 8b1b3fcbc..46d26fd19 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/PortDefinitionExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/PortDefinitionExtensions.cs @@ -86,14 +86,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/PortUsageExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/PortUsageExtensions.cs index 65fd41eba..10e1199de 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/PortUsageExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/PortUsageExtensions.cs @@ -102,14 +102,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.PortionKind = dto.PortionKind; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/PredicateExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/PredicateExtensions.cs index 1d6000124..6a37c1845 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/PredicateExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/PredicateExtensions.cs @@ -82,14 +82,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsSufficient = dto.IsSufficient; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/RedefinitionExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/RedefinitionExtensions.cs index 7b774ebf3..c7c14ad11 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/RedefinitionExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/RedefinitionExtensions.cs @@ -80,23 +80,25 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsImpliedIncluded = dto.IsImpliedIncluded; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/ReferenceSubsettingExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/ReferenceSubsettingExtensions.cs index 86ef65849..b608c9b60 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/ReferenceSubsettingExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/ReferenceSubsettingExtensions.cs @@ -80,23 +80,25 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsImpliedIncluded = dto.IsImpliedIncluded; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/ReferenceUsageExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/ReferenceUsageExtensions.cs index a20378b02..e33bf080f 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/ReferenceUsageExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/ReferenceUsageExtensions.cs @@ -100,14 +100,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/RenderingDefinitionExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/RenderingDefinitionExtensions.cs index 5cbec86f6..bbe960e7f 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/RenderingDefinitionExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/RenderingDefinitionExtensions.cs @@ -86,14 +86,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/RenderingUsageExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/RenderingUsageExtensions.cs index 207b0b044..ce7ebf6cb 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/RenderingUsageExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/RenderingUsageExtensions.cs @@ -102,14 +102,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.PortionKind = dto.PortionKind; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/RequirementConstraintMembershipExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/RequirementConstraintMembershipExtensions.cs index e514d465a..e46dfc25a 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/RequirementConstraintMembershipExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/RequirementConstraintMembershipExtensions.cs @@ -82,23 +82,25 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.Kind = dto.Kind; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.Visibility = dto.Visibility; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/RequirementDefinitionExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/RequirementDefinitionExtensions.cs index 642751a96..cdcd2bf7a 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/RequirementDefinitionExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/RequirementDefinitionExtensions.cs @@ -84,14 +84,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.ReqId = dto.ReqId; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/RequirementUsageExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/RequirementUsageExtensions.cs index d838fe95d..bd792a888 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/RequirementUsageExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/RequirementUsageExtensions.cs @@ -100,14 +100,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.PortionKind = dto.PortionKind; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/RequirementVerificationMembershipExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/RequirementVerificationMembershipExtensions.cs index 1a82ece10..1d8fedb04 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/RequirementVerificationMembershipExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/RequirementVerificationMembershipExtensions.cs @@ -82,23 +82,25 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.Kind = dto.Kind; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.Visibility = dto.Visibility; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/ResultExpressionMembershipExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/ResultExpressionMembershipExtensions.cs index 1771aae4d..9e3951919 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/ResultExpressionMembershipExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/ResultExpressionMembershipExtensions.cs @@ -80,23 +80,25 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsImpliedIncluded = dto.IsImpliedIncluded; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.Visibility = dto.Visibility; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/ReturnParameterMembershipExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/ReturnParameterMembershipExtensions.cs index 7ff54f907..213e50545 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/ReturnParameterMembershipExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/ReturnParameterMembershipExtensions.cs @@ -80,23 +80,25 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsImpliedIncluded = dto.IsImpliedIncluded; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.Visibility = dto.Visibility; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/SatisfyRequirementUsageExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/SatisfyRequirementUsageExtensions.cs index 81e59ddc5..53f3ea8bf 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/SatisfyRequirementUsageExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/SatisfyRequirementUsageExtensions.cs @@ -102,14 +102,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.PortionKind = dto.PortionKind; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/SelectExpressionExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/SelectExpressionExtensions.cs index 024b23041..755442477 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/SelectExpressionExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/SelectExpressionExtensions.cs @@ -102,14 +102,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.Operator = dto.Operator; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/SendActionUsageExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/SendActionUsageExtensions.cs index 89ed77a30..6c0c6620f 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/SendActionUsageExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/SendActionUsageExtensions.cs @@ -102,14 +102,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.PortionKind = dto.PortionKind; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/SpecializationExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/SpecializationExtensions.cs index aafef82cb..2ddde7380 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/SpecializationExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/SpecializationExtensions.cs @@ -80,23 +80,25 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsImpliedIncluded = dto.IsImpliedIncluded; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/StakeholderMembershipExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/StakeholderMembershipExtensions.cs index 0de7d72ed..d6e77f6fe 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/StakeholderMembershipExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/StakeholderMembershipExtensions.cs @@ -80,23 +80,25 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsImpliedIncluded = dto.IsImpliedIncluded; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.Visibility = dto.Visibility; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/StateDefinitionExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/StateDefinitionExtensions.cs index b19963b3e..42de6530b 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/StateDefinitionExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/StateDefinitionExtensions.cs @@ -88,14 +88,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/StateSubactionMembershipExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/StateSubactionMembershipExtensions.cs index 22e29a2a1..c47892eea 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/StateSubactionMembershipExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/StateSubactionMembershipExtensions.cs @@ -82,23 +82,25 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.Kind = dto.Kind; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.Visibility = dto.Visibility; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/StateUsageExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/StateUsageExtensions.cs index 16684be0d..079f4b47d 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/StateUsageExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/StateUsageExtensions.cs @@ -104,14 +104,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.PortionKind = dto.PortionKind; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/StepExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/StepExtensions.cs index 8a6fcc38d..c077b45cb 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/StepExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/StepExtensions.cs @@ -100,14 +100,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariable = dto.IsVariable; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/StructureExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/StructureExtensions.cs index e01e3ad75..725200142 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/StructureExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/StructureExtensions.cs @@ -82,14 +82,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsSufficient = dto.IsSufficient; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/SubclassificationExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/SubclassificationExtensions.cs index 16722aad9..b2e1b3090 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/SubclassificationExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/SubclassificationExtensions.cs @@ -80,23 +80,25 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsImpliedIncluded = dto.IsImpliedIncluded; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/SubjectMembershipExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/SubjectMembershipExtensions.cs index a626ee519..cb26b2fc2 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/SubjectMembershipExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/SubjectMembershipExtensions.cs @@ -80,23 +80,25 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsImpliedIncluded = dto.IsImpliedIncluded; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.Visibility = dto.Visibility; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/SubsettingExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/SubsettingExtensions.cs index 68f93d0a4..d09362954 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/SubsettingExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/SubsettingExtensions.cs @@ -80,23 +80,25 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsImpliedIncluded = dto.IsImpliedIncluded; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/SuccessionAsUsageExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/SuccessionAsUsageExtensions.cs index 6f03eaeef..61915fd22 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/SuccessionAsUsageExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/SuccessionAsUsageExtensions.cs @@ -102,23 +102,25 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/SuccessionExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/SuccessionExtensions.cs index c76e6eed1..6954d5451 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/SuccessionExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/SuccessionExtensions.cs @@ -102,23 +102,25 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariable = dto.IsVariable; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/SuccessionFlowExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/SuccessionFlowExtensions.cs index 917cf10c3..201d7fbdc 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/SuccessionFlowExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/SuccessionFlowExtensions.cs @@ -102,23 +102,25 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariable = dto.IsVariable; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/SuccessionFlowUsageExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/SuccessionFlowUsageExtensions.cs index 124fcc44b..40dad6902 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/SuccessionFlowUsageExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/SuccessionFlowUsageExtensions.cs @@ -104,23 +104,25 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.PortionKind = dto.PortionKind; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/TerminateActionUsageExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/TerminateActionUsageExtensions.cs index 65f6079bf..bbcdbc5d8 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/TerminateActionUsageExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/TerminateActionUsageExtensions.cs @@ -102,14 +102,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.PortionKind = dto.PortionKind; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/TextualRepresentationExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/TextualRepresentationExtensions.cs index df8665de5..7d9db651c 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/TextualRepresentationExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/TextualRepresentationExtensions.cs @@ -82,14 +82,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.Language = dto.Language; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/TransitionFeatureMembershipExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/TransitionFeatureMembershipExtensions.cs index 844f84e07..543ae2ced 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/TransitionFeatureMembershipExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/TransitionFeatureMembershipExtensions.cs @@ -82,23 +82,25 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.Kind = dto.Kind; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.Visibility = dto.Visibility; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/TransitionUsageExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/TransitionUsageExtensions.cs index a9cd5cf2e..002821a6d 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/TransitionUsageExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/TransitionUsageExtensions.cs @@ -102,14 +102,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.PortionKind = dto.PortionKind; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/TriggerInvocationExpressionExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/TriggerInvocationExpressionExtensions.cs index 2b803e0ae..e8b9ac528 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/TriggerInvocationExpressionExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/TriggerInvocationExpressionExtensions.cs @@ -102,14 +102,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.Kind = dto.Kind; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/TypeExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/TypeExtensions.cs index 4312102a6..6dfeb9e82 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/TypeExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/TypeExtensions.cs @@ -82,14 +82,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsSufficient = dto.IsSufficient; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/TypeFeaturingExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/TypeFeaturingExtensions.cs index 590815350..fca9672a3 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/TypeFeaturingExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/TypeFeaturingExtensions.cs @@ -80,23 +80,25 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsImpliedIncluded = dto.IsImpliedIncluded; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/UnioningExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/UnioningExtensions.cs index ea8cf1921..d72b73ff7 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/UnioningExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/UnioningExtensions.cs @@ -80,23 +80,25 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsImpliedIncluded = dto.IsImpliedIncluded; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/UsageExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/UsageExtensions.cs index b9b56e049..91de1866b 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/UsageExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/UsageExtensions.cs @@ -100,14 +100,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/UseCaseDefinitionExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/UseCaseDefinitionExtensions.cs index a8bd3da27..375daa3c8 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/UseCaseDefinitionExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/UseCaseDefinitionExtensions.cs @@ -86,14 +86,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/UseCaseUsageExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/UseCaseUsageExtensions.cs index f22b9325c..ca3c3e6ff 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/UseCaseUsageExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/UseCaseUsageExtensions.cs @@ -102,14 +102,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.PortionKind = dto.PortionKind; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/VariantMembershipExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/VariantMembershipExtensions.cs index 94d67cbeb..af64961cf 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/VariantMembershipExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/VariantMembershipExtensions.cs @@ -80,23 +80,25 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsImpliedIncluded = dto.IsImpliedIncluded; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.Visibility = dto.Visibility; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/VerificationCaseDefinitionExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/VerificationCaseDefinitionExtensions.cs index 1397b4916..1e5439317 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/VerificationCaseDefinitionExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/VerificationCaseDefinitionExtensions.cs @@ -86,14 +86,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/VerificationCaseUsageExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/VerificationCaseUsageExtensions.cs index db976f6d6..d20ce42da 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/VerificationCaseUsageExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/VerificationCaseUsageExtensions.cs @@ -102,14 +102,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.PortionKind = dto.PortionKind; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/ViewDefinitionExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/ViewDefinitionExtensions.cs index 052bc1284..136859f25 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/ViewDefinitionExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/ViewDefinitionExtensions.cs @@ -86,14 +86,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); return identifiersOfObjectsToDelete; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/ViewRenderingMembershipExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/ViewRenderingMembershipExtensions.cs index b5fb27a2e..10d322eee 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/ViewRenderingMembershipExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/ViewRenderingMembershipExtensions.cs @@ -80,23 +80,25 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsImpliedIncluded = dto.IsImpliedIncluded; - var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Select(x => x.Id).Except(dto.OwnedRelatedElement); + var ownedRelatedElementRetained = new HashSet(dto.OwnedRelatedElement); + var ownedRelatedElementToDelete = poco.OwnedRelatedElement.Where(x => !ownedRelatedElementRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelatedElementToDelete) + foreach (var ownedRelatedElement in ownedRelatedElementToDelete) { - ((IContainedRelationship)poco).OwnedRelatedElement.Remove(poco.OwnedRelatedElement.Single(x => x.Id == identifier)); + ((IContainedRelationship)poco).OwnedRelatedElement.Remove(ownedRelatedElement); } - identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelatedElementToDelete.Select(x => x.Id)); - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.Visibility = dto.Visibility; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/ViewUsageExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/ViewUsageExtensions.cs index 4ae66be69..b345cee53 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/ViewUsageExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/ViewUsageExtensions.cs @@ -102,14 +102,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.PortionKind = dto.PortionKind; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/ViewpointDefinitionExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/ViewpointDefinitionExtensions.cs index 0b15ad0b4..2d2119868 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/ViewpointDefinitionExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/ViewpointDefinitionExtensions.cs @@ -84,14 +84,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.ReqId = dto.ReqId; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/ViewpointUsageExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/ViewpointUsageExtensions.cs index 1e963c3fd..953aade88 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/ViewpointUsageExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/ViewpointUsageExtensions.cs @@ -100,14 +100,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.PortionKind = dto.PortionKind; diff --git a/SysML2.NET.Dal/Core/AutoGenPocoExtension/WhileLoopActionUsageExtensions.cs b/SysML2.NET.Dal/Core/AutoGenPocoExtension/WhileLoopActionUsageExtensions.cs index fe64221a9..844dcbe25 100644 --- a/SysML2.NET.Dal/Core/AutoGenPocoExtension/WhileLoopActionUsageExtensions.cs +++ b/SysML2.NET.Dal/Core/AutoGenPocoExtension/WhileLoopActionUsageExtensions.cs @@ -102,14 +102,15 @@ public static IEnumerable UpdateValueAndRemoveDeletedReferenceProperties(t poco.IsVariation = dto.IsVariation; - var ownedRelationshipToDelete = poco.OwnedRelationship.Select(x => x.Id).Except(dto.OwnedRelationship); + var ownedRelationshipRetained = new HashSet(dto.OwnedRelationship); + var ownedRelationshipToDelete = poco.OwnedRelationship.Where(x => !ownedRelationshipRetained.Contains(x.Id)).ToList(); - foreach (var identifier in ownedRelationshipToDelete) + foreach (var ownedRelationship in ownedRelationshipToDelete) { - ((IContainedElement)poco).OwnedRelationship.Remove(poco.OwnedRelationship.Single(x => x.Id == identifier)); + ((IContainedElement)poco).OwnedRelationship.Remove(ownedRelationship); } - identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete); + identifiersOfObjectsToDelete.AddRange(ownedRelationshipToDelete.Select(x => x.Id)); poco.PortionKind = dto.PortionKind;