public override void UpdateDatabaseBeforeUpdateSchema() { base.UpdateDatabaseBeforeUpdateSchema(); if (SequenceGenerator.UseGuidKey) { var classInfo = XpandModuleBase.Dictiorary.GetClassInfo(XpandModuleBase.SequenceObjectType); var dbTable = GetDbTable(classInfo.TableName); if (dbTable != null) { if (SequenceGeneratorHelper.IsMySql()) { throw new NotImplementedException("Set SequenceGenerator.UseGuidKey=false or update the set Oid as key property manually"); } var memberInfo = classInfo.Members.FirstOrDefault(info => info.IsCollection && typeof(ISequenceReleasedObject).IsAssignableFrom(info.CollectionElementType.ClassType)); if (memberInfo != null) { var tableName = memberInfo.CollectionElementType.Table.Name; if (GetDbTable(tableName) != null) { ExecuteNonQueryCommand("drop table " + tableName, false); } } ExecuteNonQueryCommand("alter table " + classInfo.TableName + " drop constraint PK_SequenceObject", false); } } }
public override void UpdateDatabaseBeforeUpdateSchema() { base.UpdateDatabaseBeforeUpdateSchema(); if (SequenceGenerator.UseGuidKey && XpandModuleBase.SequenceObjectType != null) { var classInfo = XafTypesInfo.CastTypeToTypeInfo(XpandModuleBase.SequenceObjectType).QueryXPClassInfo(); var dbTable = GetDbTable(classInfo.TableName); var typeNamePropertyName = nameof(ISequenceObject.TypeName); if (dbTable != null && dbTable.PrimaryKey.Columns.Contains(typeNamePropertyName)) { if (SequenceGeneratorHelper.IsMySql()) { throw new NotImplementedException("Set SequenceGenerator.UseGuidKey=false or update the set Oid as key property manually"); } var memberInfo = classInfo.Members.FirstOrDefault(info => info.IsCollection && typeof(ISequenceReleasedObject).IsAssignableFrom(info.CollectionElementType.ClassType)); if (memberInfo != null) { var tableName = memberInfo.CollectionElementType.Table.Name; if (GetDbTable(tableName) != null) { ExecuteNonQueryCommand("drop table " + tableName, false); } } ExecuteNonQueryCommand(String.Format( CultureInfo.InvariantCulture, "alter table {0} drop constraint PK_{0}", classInfo.TableName), false); } } }
public override void Setup(XafApplication application) { base.Setup(application); if (RuntimeMode) { ApplicationHelper.Instance.Initialize(application); } CheckApplicationTypes(); var helper = new ConnectionStringHelper(); helper.Attach(this); var generatorHelper = new SequenceGeneratorHelper(); generatorHelper.Attach(this, helper); if (Executed("Setup")) { return; } if (ManifestModuleName == null) { ManifestModuleName = application.GetType().Assembly.ManifestModule.Name; } application.SetupComplete += ApplicationOnSetupComplete; application.SettingUp += ApplicationOnSettingUp; }
public override void Setup(XafApplication application) { lock (XafTypesInfo.Instance) { if (RuntimeMode && XafTypesInfo.PersistentEntityStore == null) { XafTypesInfo.SetPersistentEntityStore(new XpandXpoTypeInfoSource((TypesInfo)application.TypesInfo)); } } base.Setup(application); CheckApplicationTypes(); if (RuntimeMode) { ApplicationHelper.Instance.Initialize(application); var helper = new ConnectionStringHelper(); helper.Attach(this); var generatorHelper = new SequenceGeneratorHelper(); generatorHelper.Attach(this); helper.ConnectionStringUpdated += (sender, args) => generatorHelper.InitializeSequenceGenerator(); } if (Executed("Setup")) { return; } if (ManifestModuleName == null) { ManifestModuleName = application.GetType().Assembly.ManifestModule.Name; } application.CreateCustomUserModelDifferenceStore += OnCreateCustomUserModelDifferenceStore; application.SetupComplete += ApplicationOnSetupComplete; application.SettingUp += ApplicationOnSettingUp; application.CreateCustomCollectionSource += ApplicationOnCreateCustomCollectionSource; if (RuntimeMode) { application.LoggedOn += (sender, args) => RuntimeMemberBuilder.CreateRuntimeMembers(application.Model); } }
public static void ModifySequenceObjectWhenMySqlDatalayer(this ITypesInfo typesInfo) { SequenceGeneratorHelper.ModifySequenceObjectWhenMySqlDatalayer(typesInfo); }