protected override void InvokeInternal(CommandProcessorContext cpc) { Debug.Assert(_entityType != null || _complexType != null, "Undefined parent type"); if (_entityType != null) { var propertyName = ModelHelper.GetUniqueConceptualPropertyName(_clipboardProperty.PropertyName, _entityType); if (_clipboardProperty.IsComplexProperty) { _createdProperty = CreateComplexPropertyCommand.CreateComplexProperty( cpc, propertyName, _entityType, _clipboardProperty.PropertyType, _clipboardProperty.ConcurrencyMode, _clipboardProperty.GetterAccessModifier, _clipboardProperty.SetterAccessModifier, _insertPosition); } else if (_clipboardProperty.IsConceptualProperty) { Debug.Assert(_entityType.EntityModel.IsCSDL, "This should be a c-side Entity"); if (_entityType.EntityModel.IsCSDL) { _createdProperty = CreatePropertyCommand.CreateConceptualProperty( cpc, propertyName, _entityType as ConceptualEntityType, _clipboardProperty.PropertyType, _clipboardProperty.IsNullable, _clipboardProperty.Default, _clipboardProperty.ConcurrencyMode, _clipboardProperty.GetterAccessModifier, _clipboardProperty.SetterAccessModifier, _clipboardProperty.MaxLength, _clipboardProperty.FixedLength, _clipboardProperty.Precision, _clipboardProperty.Scale, _clipboardProperty.Unicode, _clipboardProperty.Collation, _clipboardProperty.StoreGeneratedPattern, _insertPosition); } } else { Debug.Assert(_entityType.EntityModel.IsCSDL == false, "This should be a s-side Entity"); if (!_entityType.EntityModel.IsCSDL) { _createdProperty = CreatePropertyCommand.CreateStorageProperty( cpc, propertyName, _entityType as StorageEntityType, _clipboardProperty.PropertyType, _clipboardProperty.IsNullable, _clipboardProperty.Default, _clipboardProperty.MaxLength, DefaultableValueBoolOrNone.GetFromNullableBool(_clipboardProperty.FixedLength), _clipboardProperty.Precision, _clipboardProperty.Scale, DefaultableValueBoolOrNone.GetFromNullableBool(_clipboardProperty.Unicode), _clipboardProperty.Collation, _clipboardProperty.ConcurrencyMode); } } if (_clipboardProperty.IsKeyProperty) { var setKey = new SetKeyPropertyCommand(_createdProperty, true); CommandProcessor.InvokeSingleCommand(cpc, setKey); } AddAnnotations(_clipboardProperty, _createdProperty); } else { var cmd = new CopyComplexTypePropertyCommand(_clipboardProperty, _complexType); CommandProcessor.InvokeSingleCommand(cpc, cmd); _createdProperty = cmd.Property; } }
protected override void InvokeInternal(CommandProcessorContext cpc) { Debug.Assert(_entityType != null || _complexType != null, "Undefined parent type"); if (_entityType != null) { var propertyName = ModelHelper.GetUniqueConceptualPropertyName(_clipboardProperty.PropertyName, _entityType); if (_clipboardProperty.IsComplexProperty) { _createdProperty = CreateComplexPropertyCommand.CreateComplexProperty( cpc, propertyName, _entityType, _clipboardProperty.PropertyType, _clipboardProperty.ConcurrencyMode, _clipboardProperty.GetterAccessModifier, _clipboardProperty.SetterAccessModifier, _insertPosition); } else if (_clipboardProperty.IsConceptualProperty) { Debug.Assert(_entityType.EntityModel.IsCSDL, "This should be a c-side Entity"); if (_entityType.EntityModel.IsCSDL) { _createdProperty = CreatePropertyCommand.CreateConceptualProperty( cpc, propertyName, _entityType as ConceptualEntityType, _clipboardProperty.PropertyType, _clipboardProperty.IsNullable, _clipboardProperty.Default, _clipboardProperty.ConcurrencyMode, _clipboardProperty.GetterAccessModifier, _clipboardProperty.SetterAccessModifier, _clipboardProperty.MaxLength, _clipboardProperty.FixedLength, _clipboardProperty.Precision, _clipboardProperty.Scale, _clipboardProperty.Unicode, _clipboardProperty.Collation, _clipboardProperty.StoreGeneratedPattern, _insertPosition); } } else { Debug.Assert(_entityType.EntityModel.IsCSDL == false, "This should be a s-side Entity"); if (!_entityType.EntityModel.IsCSDL) { _createdProperty = CreatePropertyCommand.CreateStorageProperty( cpc, propertyName, _entityType as StorageEntityType, _clipboardProperty.PropertyType, _clipboardProperty.IsNullable, _clipboardProperty.Default, _clipboardProperty.MaxLength, DefaultableValueBoolOrNone.GetFromNullableBool(_clipboardProperty.FixedLength), _clipboardProperty.Precision, _clipboardProperty.Scale, DefaultableValueBoolOrNone.GetFromNullableBool(_clipboardProperty.Unicode), _clipboardProperty.Collation, _clipboardProperty.ConcurrencyMode); } } if (_clipboardProperty.IsKeyProperty) { var setKey = new SetKeyPropertyCommand(_createdProperty, true); CommandProcessor.InvokeSingleCommand(cpc, setKey); } AddAnnotations(_clipboardProperty, _createdProperty); } else { var cmd = new CopyComplexTypePropertyCommand(_clipboardProperty, _complexType); CommandProcessor.InvokeSingleCommand(cpc, cmd); _createdProperty = cmd.Property; } }