Пример #1
0
        protected override string BuildTableScript(Mapping.IEntityMapping mapping)
        {
            Guard.NotNull(mapping, "mapping");

            var tableName = GetTableName(mapping);

            var sb = new StringBuilder(512);

            sb.Append("CREATE TABLE ").Append(tableName).Append("(");

            int num = 0;

            foreach (var f in mapping.Members.Where(p => !p.IsRelationship && !p.IsComputed))
            {
                if (num > 0)
                {
                    sb.Append(",");
                }
                sb.AppendLine();

                sb.Append("\t").Append(Dialect.Quote(f.ColumnName));

                var sqlType = f.SqlType;
                sb.Append(" ").Append(GetDbType(f.SqlType));

                if (sqlType.Required || f.IsPrimaryKey)
                {
                    sb.Append(" NOT NULL");
                }
                if (f.IsPrimaryKey && !f.IsGenerated && mapping.PrimaryKeys.Length == 1)
                {
                    sb.Append(" PRIMARY KEY");
                }

                if (f.IsGenerated)
                {
                    sb.Append(GetDefaultValue(f, sqlType));
                }
                num++;
            }
            if (mapping.PrimaryKeys.Count() > 1)
            {
                sb.AppendLine().Append(CreatePKScript(mapping.Members))
                .Append(") ENGINE=INNODB;");
                sb.AppendLine("");
            }
            else
            {
                sb.AppendLine()
                .Append(") ENGINE=INNODB;");
                sb.AppendLine("");
            }

            return(sb.ToString());
        }
Пример #2
0
 protected override void WriteTableName(Mapping.IEntityMapping mapping)
 {
     if (mapping.ServerName.HasValue())
     {
         sb.Append(Dialect.Quote(mapping.ServerName)).Append(".");
     }
     if (mapping.DatabaseName.HasValue())
     {
         sb.Append(Dialect.Quote(mapping.DatabaseName)).Append(".");
     }
     if (Dialect.SupportSchema && !string.IsNullOrEmpty(mapping.Schema))
     {
         sb.Append(Dialect.Quote(mapping.Schema));
         sb.Append(".");
     }
     this.AppendTableName(mapping.TableName);
 }
Пример #3
0
        protected override string BuildTableScript(Mapping.IEntityMapping mapping)
        {
            var tableName = GetTableName(mapping);
            var sb        = new StringBuilder(512);

            sb.Append("CREATE TABLE ").Append(tableName).Append("(");

            int num = 0;

            foreach (var f in mapping.Members.Where(p => !p.IsRelationship && !p.IsComputed))
            {
                if (num > 0)
                {
                    sb.Append(",");
                }
                sb.AppendLine();

                sb.Append("\t").Append(Dialect.Quote(f.ColumnName));

                var sqlType = f.SqlType;
                sb.Append(" ").Append(GetDbType(f.SqlType));

                if (sqlType.Required || f.IsPrimaryKey)
                {
                    sb.Append(" NOT NULL");
                }

                if (f.IsGenerated)
                {
                    sb.Append(GetDefaultValue(f, sqlType));
                }
                num++;
            }

            sb.AppendLine()
            .Append(")");
            sb.AppendLine("");
            return(sb.ToString());
        }
Пример #4
0
        protected override string BuildSequenceScript(Mapping.IEntityMapping mapping)
        {
            var sequenceName = mapping.Members.Where(p => p.IsGenerated).Select(p => p.SequenceName).Where(p => p.HasValue()).ToArray();
            var sb           = new StringBuilder(512);

            if (sequenceName != null)
            {
                foreach (var s in sequenceName)
                {
                    sb.Append("CREATE  SEQUENCE ")
                    .Append(s)
                    .AppendLine()
                    .Append("\t MINVALUE 1 ")
                    .Append("\t MAXVALUE 99999999 ")
                    .Append("\t START WITH 1 ")
                    .Append("\t INCREMENT BY 1")
                    .Append("\t NOCACHE")
                    .Append("\t ORDER")
                    ;
                }
            }
            return(sb.ToString());
        }
Пример #5
0
        private string CreateFKScript(Mapping.IEntityMapping mapping)
        {
            var fks = mapping.Members.Where(p => p.IsManyToOne).ToArray();

            if (fks.Length == 0)
            {
                return(null);
            }

            var sb = new StringBuilder(512);

            foreach (var fk in fks)
            {
                sb.Append(string.Concat(",FOREIGN KEY ("
                                        , Dialect.Quote(fk.ThisKeyMembers.FirstOrDefault().ColumnName)
                                        , ") REFERENCES "
                                        , GetTableName(fk.RelatedEntity)
                                        , "("
                                        , Dialect.Quote(fk.OtherKeyMembers.FirstOrDefault().ColumnName)
                                        , ")"));
            }
            return(sb.ToString());
        }
Пример #6
0
 /// <summary>
 /// 构建序列脚本
 /// </summary>
 /// <param name="members"></param>
 /// <returns></returns>
 protected virtual string BuildSequenceScript(Mapping.IEntityMapping mapping)
 {
     return(null);
 }
Пример #7
0
        protected override string BuildTableScript(Mapping.IEntityMapping mapping)
        {
            Guard.NotNull(mapping, "mapping");

            var tableName = GetTableName(mapping);

            var sb = new StringBuilder(512);

            sb.Append("CREATE TABLE ").Append(tableName).Append("(");

            int num = 0;

            foreach (var f in mapping.Members.Where(p => !p.IsRelationship && !p.IsComputed))
            {
                sb.AppendLine("\t");
                if (num > 0)
                {
                    sb.Append(",");
                }
                sb.Append(Dialect.Quote(f.ColumnName));

                var sqlType = f.SqlType;
                sb.Append(" ").Append(GetDbType(f.SqlType));

                if (sqlType.Required && !f.IsPrimaryKey)
                {
                    sb.Append(" NOT NULL");
                }
                if (f.IsPrimaryKey && mapping.PrimaryKeys.Length == 1)
                {
                    sb.Append(" PRIMARY KEY");
                }

                if (f.IsGenerated)
                {
                    sb.Append(GetDefaultValue(f, sqlType));
                }
                num++;
            }
            if (mapping.PrimaryKeys.Count() > 1)
            {
                sb.AppendLine("\t").Append(CreatePKScript(mapping.Members))
                ;
            }

            var fks = mapping.Members.Where(p => p.IsManyToOne).ToArray();

            foreach (var fk in fks)
            {
                sb.AppendLine(string.Concat("\t,FOREIGN KEY ("
                                            , Dialect.Quote(fk.ThisKeyMembers.FirstOrDefault().ColumnName)
                                            , ") REFERENCES "
                                            , GetTableName(fk.RelatedEntity)
                                            , "("
                                            , Dialect.Quote(fk.OtherKeyMembers.FirstOrDefault().ColumnName)
                                            , ")"));
            }

            sb.AppendLine()
            .Append(");");
            sb.AppendLine("");


            return(sb.ToString());
        }