示例#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);
         }
     }
 }
示例#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);
         }
     }
 }