Exemplo n.º 1
0
 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);
         }
     }
 }
Exemplo n.º 2
0
 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);
         }
     }
 }
Exemplo n.º 3
0
        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;
        }
Exemplo n.º 4
0
        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);
            }
        }
Exemplo n.º 5
0
 public static void ModifySequenceObjectWhenMySqlDatalayer(this ITypesInfo typesInfo)
 {
     SequenceGeneratorHelper.ModifySequenceObjectWhenMySqlDatalayer(typesInfo);
 }