Exemple #1
0
        public TableColumn?VisitByteArray(TempTableBuilderCtx arg, bool?isNull, int?length, bool fix)
        {
            var arrayTableColumn = EnsureColumnType <NullableByteArrayTableColumn>(arg);

            if (ReferenceEquals(arrayTableColumn, null))
            {
                return(CreateCol(length));
            }
            else
            {
                if (arrayTableColumn.SqlType.GetSize().HasValue&& (!length.HasValue || length.Value > arrayTableColumn.SqlType.GetSize()))
                {
                    return(CreateCol(length));
                }
                return(arrayTableColumn);
            }

            NullableByteArrayTableColumn CreateCol(int?len)
            {
                return(new NullableByteArrayTableColumn(this.Alias,
                                                        arg.ColumnName,
                                                        this,
                                                        fix
                        ? new ExprTypeFixSizeByteArray(length.AssertNotNull("Length cannot be null for fixed size array"))
                        : new ExprTypeByteArray(length),
                                                        arg.PrimaryKey ? ColumnMeta.PrimaryKey() : null));
            }
        }
 public TableFk3AB(Alias alias) : base(schema : "dbo", name : "Fk3AB", alias : alias)
 {
     this.Id      = this.CreateInt32Column("Id", ColumnMeta.PrimaryKey());
     this.Parent0 = this.CreateInt32Column("Parent0", ColumnMeta.ForeignKey <TableFk0>(t => t.Id));
     this.ParentA = this.CreateInt32Column("ParentA", ColumnMeta.ForeignKey <TableFk1A>(t => t.Id).ForeignKey <TableFk2AB>(t => t.ParentA));
     this.ParentB = this.CreateInt32Column("ParentB", ColumnMeta.ForeignKey <TableFk1B>(t => t.Id).ForeignKey <TableFk2AB>(t => t.ParentB));
 }
Exemple #3
0
 public TableItOrder(Alias alias) : base(schema : "dbo", name : "ItOrder", alias : alias)
 {
     this.OrderId     = this.CreateInt32Column("OrderId", ColumnMeta.PrimaryKey().Identity());
     this.CustomerId  = this.CreateInt32Column("CustomerId", ColumnMeta.ForeignKey <TableItCustomer>(t => t.CustomerId));
     this.DateCreated = this.CreateDateTimeColumn("DateCreated", false, ColumnMeta.DefaultValue(SqQueryBuilder.GetUtcDate()));
     this.Notes       = this.CreateNullableStringColumn(name: "Notes", size: 100, isUnicode: true, isText: false, columnMeta: null);
 }
Exemple #4
0
        public TableColumn VisitString(TempTableBuilderCtx arg, bool?isNull, int?size, bool fix)
        {
            var stringTableColumn = EnsureColumnType <NullableStringTableColumn>(arg);

            if (ReferenceEquals(stringTableColumn, null))
            {
                return(CreateString(size));
            }
            else
            {
                if (stringTableColumn.SqlType.GetSize().HasValue&& (!size.HasValue || size.Value > stringTableColumn.SqlType.GetSize()))
                {
                    return(CreateString(size));
                }
                return(stringTableColumn);
            }

            NullableStringTableColumn CreateString(int?len)
            {
                return(new NullableStringTableColumn(this.Alias,
                                                     arg.ColumnName,
                                                     this,
                                                     fix
                        ? new ExprTypeFixSizeString(len.AssertNotNull("Length cannot be null for fixed size string"), true)
                        : new ExprTypeString(len, true, false),
                                                     arg.PrimaryKey ? ColumnMeta.PrimaryKey() : null));
            }
        }
Exemple #5
0
 public TableItCustomer(Alias alias) : base(schema : "dbo", name : "ItCustomer", alias : alias)
 {
     this.CustomerId = this.CreateInt32Column("CustomerId", ColumnMeta.PrimaryKey().Identity());
     this.UserId     = this.CreateNullableInt32Column("UserId", ColumnMeta.ForeignKey <TableItUser>(t => t.UserId));
     this.CompanyId  = this.CreateNullableInt32Column("CompanyId", ColumnMeta.ForeignKey <TableItCompany>(t => t.CompanyId));
     this.AddUniqueIndex(this.UserId, this.CompanyId);
     this.AddUniqueIndex(this.CompanyId, this.UserId);
 }
Exemple #6
0
 public TableColumn?VisitXml(TempTableBuilderCtx arg, bool?isNull)
 {
     return(EnsureColumnType <NullableStringTableColumn>(arg) ??
            new NullableStringTableColumn(this.Alias,
                                          arg.ColumnName,
                                          this,
                                          ExprTypeXml.Instance,
                                          arg.PrimaryKey ? ColumnMeta.PrimaryKey() : null));
 }
        public TableCustomer(Alias alias) : base("dbo", "Customer", alias)
        {
            this.CustomerId = this.CreateInt32Column(nameof(this.CustomerId), ColumnMeta.PrimaryKey().Identity());
            this.UserId     = this.CreateNullableInt32Column(nameof(this.UserId), ColumnMeta.ForeignKey <TableUser>(u => u.UserId));
            this.CompanyId  = this.CreateNullableInt32Column(nameof(this.CompanyId), ColumnMeta.ForeignKey <TableCompany>(u => u.CompanyId));

            //Indexes
            this.AddUniqueIndex(this.UserId, this.CompanyId);
            this.AddUniqueIndex(this.CompanyId, this.UserId);
        }
Exemple #8
0
        public TableCompany(Alias alias) : base("dbo", "Company", alias)
        {
            this.CompanyId   = this.CreateInt32Column(nameof(this.CompanyId), ColumnMeta.PrimaryKey().Identity());
            this.CompanyName = this.CreateStringColumn(nameof(this.CompanyName), 250);

            this.Version = this.CreateInt32Column("Version",
                                                  ColumnMeta.DefaultValue(0));
            this.ModifiedAt = this.CreateDateTimeColumn("ModifiedAt",
                                                        columnMeta: ColumnMeta.DefaultValue(SqQueryBuilder.GetUtcDate()));
        }
Exemple #9
0
        public TableUser(Alias alias) : base("dbo", "User", alias)
        {
            this.UserId    = this.CreateInt32Column("UserId", ColumnMeta.PrimaryKey().Identity());
            this.FirstName = this.CreateStringColumn("FirstName", size: 255, isUnicode: true);
            this.LastName  = this.CreateStringColumn("LastName", size: 255, isUnicode: true);

            this.Version = this.CreateInt32Column("Version",
                                                  ColumnMeta.DefaultValue(0));
            this.ModifiedAt = this.CreateDateTimeColumn("ModifiedAt",
                                                        columnMeta: ColumnMeta.DefaultValue(SqQueryBuilder.GetUtcDate()));
        }
 public TableItCompany(Alias alias) : base(schema : "dbo", name : "ItCompany", alias : alias)
 {
     this.CompanyId   = this.CreateInt32Column("CompanyId", ColumnMeta.PrimaryKey().Identity());
     this.ExternalId  = this.CreateGuidColumn("ExternalId", null);
     this.CompanyName = this.CreateStringColumn(name: "CompanyName", size: 250, isUnicode: false, isText: false, columnMeta: null);
     this.Version     = this.CreateInt32Column("Version", null);
     this.Created     = this.CreateDateTimeColumn("Created", false, null);
     this.Modified    = this.CreateDateTimeColumn("Modified", false, null);
     this.AddUniqueIndex(this.ExternalId);
     this.AddIndex(this.CompanyName);
 }
 public TableItUser(Alias alias) : base(schema : "dbo", name : "ItUser", alias : alias)
 {
     this.UserId     = this.CreateInt32Column("UserId", ColumnMeta.PrimaryKey().Identity());
     this.ExternalId = this.CreateGuidColumn("ExternalId", null);
     this.FirstName  = this.CreateStringColumn(name: "FirstName", size: 255, isUnicode: false, isText: false, columnMeta: null);
     this.LastName   = this.CreateStringColumn(name: "LastName", size: 255, isUnicode: false, isText: false, columnMeta: null);
     this.Email      = this.CreateStringColumn(name: "Email", size: 255, isUnicode: false, isText: false, columnMeta: null);
     this.RegDate    = this.CreateDateTimeColumn("RegDate", false, null);
     this.Version    = this.CreateInt32Column("Version", ColumnMeta.DefaultValue(0));
     this.Created    = this.CreateDateTimeColumn("Created", false, ColumnMeta.DefaultValue(SqQueryBuilder.GetUtcDate()));
     this.Modified   = this.CreateDateTimeColumn("Modified", false, ColumnMeta.DefaultValue(SqQueryBuilder.GetUtcDate()));
     this.AddUniqueClusteredIndex(this.ExternalId);
     this.AddIndex(this.FirstName);
     this.AddIndex(IndexMetaColumn.Desc(this.LastName));
 }
Exemple #12
0
 public TableItAllColumnTypes(bool postgres, Alias alias) : base(schema : "dbo", name : "ItAllColumnTypes", alias : alias)
 {
     this.Id                 = this.CreateInt32Column("Id", ColumnMeta.PrimaryKey().Identity());
     this.ColBoolean         = this.CreateBooleanColumn("ColBoolean", null);
     this.ColNullableBoolean = this.CreateNullableBooleanColumn("ColNullableBoolean", null);
     if (!postgres)
     {
         this.ColByte         = this.CreateByteColumn("ColByte", null);
         this.ColNullableByte = this.CreateNullableByteColumn("ColNullableByte", null);
     }
     this.ColInt16                      = this.CreateInt16Column("ColInt16", null);
     this.ColNullableInt16              = this.CreateNullableInt16Column("ColNullableInt16", null);
     this.ColInt32                      = this.CreateInt32Column("ColInt32", null);
     this.ColNullableInt32              = this.CreateNullableInt32Column("ColNullableInt32", null);
     this.ColInt64                      = this.CreateInt64Column("ColInt64", null);
     this.ColNullableInt64              = this.CreateNullableInt64Column("ColNullableInt64", null);
     this.ColDecimal                    = this.CreateDecimalColumn("ColDecimal", new DecimalPrecisionScale(precision: 10, scale: 6), null);
     this.ColNullableDecimal            = this.CreateNullableDecimalColumn("ColNullableDecimal", new DecimalPrecisionScale(precision: 10, scale: 6), null);
     this.ColDouble                     = this.CreateDoubleColumn("ColDouble", null);
     this.ColNullableDouble             = this.CreateNullableDoubleColumn("ColNullableDouble", null);
     this.ColDateTime                   = this.CreateDateTimeColumn("ColDateTime", false, null);
     this.ColNullableDateTime           = this.CreateNullableDateTimeColumn("ColNullableDateTime", false, null);
     this.ColGuid                       = this.CreateGuidColumn("ColGuid", null);
     this.ColNullableGuid               = this.CreateNullableGuidColumn("ColNullableGuid", null);
     this.ColStringUnicode              = this.CreateStringColumn(name: "ColStringUnicode", size: null, isUnicode: true, isText: false, columnMeta: null);
     this.ColNullableStringUnicode      = this.CreateNullableStringColumn(name: "ColNullableStringUnicode", size: null, isUnicode: true, isText: false, columnMeta: null);
     this.ColStringMax                  = this.CreateStringColumn(name: "ColStringMax", size: null, isUnicode: false, isText: false, columnMeta: null);
     this.ColNullableStringMax          = this.CreateNullableStringColumn(name: "ColNullableStringMax", size: null, isUnicode: false, isText: false, columnMeta: null);
     this.ColString5                    = this.CreateStringColumn(name: "ColString5", size: 5, isUnicode: false, isText: false, columnMeta: null);
     this.ColByteArraySmall             = this.CreateByteArrayColumn("ColByteArraySmall", 255, null);
     this.ColByteArrayBig               = this.CreateByteArrayColumn("ColByteArrayBig", null, null);
     this.ColNullableByteArraySmall     = this.CreateNullableByteArrayColumn("ColNullableByteArraySmall", 255, null);
     this.ColNullableByteArrayBig       = this.CreateNullableByteArrayColumn("ColNullableByteArrayBig", null, null);
     this.ColFixedSizeString            = this.CreateFixedSizeStringColumn(name: "ColFixedSizeString", size: 3, isUnicode: false, columnMeta: null);
     this.ColNullableFixedSizeString    = this.CreateNullableFixedSizeStringColumn(name: "ColNullableFixedSizeString", size: 3, isUnicode: true, columnMeta: null);
     this.ColFixedSizeByteArray         = this.CreateFixedSizeByteArrayColumn("ColFixedSizeByteArray", 2, null);
     this.ColNullableFixedSizeByteArray = this.CreateNullableFixedSizeByteArrayColumn("ColNullableFixedSizeByteArray", 2, null);
     this.ColXml         = this.CreateXmlColumn("ColXml", null);
     this.ColNullableXml = this.CreateNullableXmlColumn("ColNullableXml", null);
 }
Exemple #13
0
 public TempTable(Alias alias = default) : base("tempTable", alias)
 {
     this.Id   = CreateInt32Column(nameof(Id), ColumnMeta.PrimaryKey().Identity());
     this.Name = CreateStringColumn(nameof(Name), 255);
 }
Exemple #14
0
 public TestMergeTmpTable() : base("TargetTable", SqExpress.Alias.Auto)
 {
     this.Id      = this.CreateInt32Column("Id", ColumnMeta.PrimaryKey());
     this.Value   = this.CreateInt32Column("Value");
     this.Version = this.CreateInt32Column("Version", ColumnMeta.DefaultValue(0));
 }
Exemple #15
0
 public TableFavoriteFilter(Alias alias) : base("dbo", "FavoriteFilter", alias)
 {
     this.FavoriteFilterId = CreateInt32Column(nameof(this.FavoriteFilterId), ColumnMeta.PrimaryKey().Identity());
     this.Name             = CreateStringColumn(nameof(this.Name), 255);
 }
Exemple #16
0
 public TableFk1A(Alias alias) : base(schema : "dbo", name : "Fk1A", alias : alias)
 {
     this.Id     = this.CreateInt32Column("Id", ColumnMeta.PrimaryKey());
     this.Parent = this.CreateInt32Column("Parent", ColumnMeta.ForeignKey <TableFk0>(t => t.Id));
 }
Exemple #17
0
 public TmpStr(Alias alias = default) : base("TmpStr", alias)
 {
     this.Index = this.CreateInt32Column("Index", ColumnMeta.PrimaryKey());
     this.Text  = this.CreateStringColumn("Text", 255, true);
 }
Exemple #18
0
 public TableFk0(Alias alias) : base(schema : "dbo", name : "Fk0", alias : alias)
 {
     this.Id = this.CreateInt32Column("Id", ColumnMeta.PrimaryKey());
 }
Exemple #19
0
 public Organization(Alias alias) : base("dbo", nameof(Organization), alias)
 {
     this.OrganizationId   = this.CreateInt32Column(nameof(this.OrganizationId), ColumnMeta.PrimaryKey());
     this.OrganizationName = this.CreateStringColumn(nameof(this.OrganizationName), 250);
 }
Exemple #20
0
        public TableColumn VisitDecimal(TempTableBuilderCtx arg, bool?isNull, DecimalPrecisionScale?decimalPrecisionScale)
        {
            var column = EnsureColumnType <NullableDecimalTableColumn>(arg);

            if (ReferenceEquals(column, null))
            {
                return(CreateColumn(decimalPrecisionScale));
            }
            else
            {
                if (decimalPrecisionScale.HasValue)
                {
                    if (column.PrecisionScale.HasValue)
                    {
                        var old   = column.PrecisionScale.Value;
                        var newPs = decimalPrecisionScale.Value;

                        if (old.Precision < newPs.Precision || old.Scale < newPs.Scale)
                        {
                            return(CreateColumn(decimalPrecisionScale));
                        }
                    }
                }

                return(column);
            }

            NullableDecimalTableColumn CreateColumn(DecimalPrecisionScale?precisionScale)
            {
                return(new NullableDecimalTableColumn(this.Alias, arg.ColumnName, this, precisionScale, arg.PrimaryKey ? ColumnMeta.PrimaryKey() : null));
            }
        }
Exemple #21
0
 public Customer(Alias alias) : base("dbo", nameof(Customer), alias)
 {
     this.CustomerId       = this.CreateInt32Column(nameof(CustomerId), ColumnMeta.PrimaryKey().Identity());
     this.UserId           = this.CreateNullableInt32Column(nameof(UserId), ColumnMeta.ForeignKey <User>(u => u.UserId));
     this.OrganizationIdId = this.CreateNullableInt32Column(nameof(OrganizationIdId), ColumnMeta.ForeignKey <Organization>(u => u.OrganizationId));
 }
Exemple #22
0
 public TableColumn?VisitGuid(TempTableBuilderCtx arg, bool?isNull)
 {
     return(EnsureColumnType <NullableGuidTableColumn>(arg) ??
            new NullableGuidTableColumn(this.Alias, arg.ColumnName, this, arg.PrimaryKey ? ColumnMeta.PrimaryKey() : null));
 }