protected virtual FieldValue GenerateFieldTicks(Table table, PropertyRoute route, NameSequence name) { var ticksAttr = Settings.TypeAttribute <TicksColumnAttribute>(table.Type); if (ticksAttr != null && !ticksAttr.HasTicks) { throw new InvalidOperationException("HastTicks is false"); } Type type = ticksAttr?.Type ?? route.Type; SqlDbTypePair pair = Settings.GetSqlDbType(ticksAttr, type); return(table.Ticks = new FieldTicks(route.Type) { Type = type, Name = ticksAttr?.Name ?? name.ToString(), SqlDbType = pair.SqlDbType, UserDefinedTypeName = pair.UserDefinedTypeName, Nullable = false, Size = Settings.GetSqlSize(ticksAttr, pair.SqlDbType), Scale = Settings.GetSqlScale(ticksAttr, pair.SqlDbType), Default = ticksAttr?.Default, }); }
public override string ToString() { if (PreSequence is VoidNameSequence) { return(Value); } return("_".Combine(PreSequence.ToString(), Value)); }
protected virtual FieldReference GenerateFieldReference(ITable table, PropertyRoute route, NameSequence name, bool forceNull) { var referenceTable = Include(Lite.Extract(route.Type) ?? route.Type, route); var nullable = Settings.IsNullable(route, forceNull); return(new FieldReference(route.Type) { Name = name.ToString(), Nullable = nullable, IsLite = route.Type.IsLite(), ReferenceTable = referenceTable, AvoidForeignKey = Settings.FieldAttribute <AvoidForeignKeyAttribute>(route) != null, AvoidExpandOnRetrieving = Settings.FieldAttribute <AvoidExpandQueryAttribute>(route) != null, Default = Settings.FieldAttribute <SqlDbTypeAttribute>(route)?.Default }.Do(f => f.UniqueIndex = f.GenerateUniqueIndex(table, Settings.FieldAttribute <UniqueIndexAttribute>(route)))); }
protected virtual FieldValue GenerateFieldValue(ITable table, PropertyRoute route, NameSequence name, bool forceNull) { var att = Settings.FieldAttribute <SqlDbTypeAttribute>(route); SqlDbTypePair pair = Settings.GetSqlDbType(att, route.Type); return(new FieldValue(route.Type) { Name = name.ToString(), SqlDbType = pair.SqlDbType, UserDefinedTypeName = pair.UserDefinedTypeName, Nullable = Settings.IsNullable(route, forceNull), Size = Settings.GetSqlSize(att, pair.SqlDbType), Scale = Settings.GetSqlScale(att, pair.SqlDbType), Default = att?.Default, }.Do(f => f.UniqueIndex = f.GenerateUniqueIndex(table, Settings.FieldAttribute <UniqueIndexAttribute>(route)))); }
protected virtual FieldEnum GenerateFieldEnum(ITable table, PropertyRoute route, NameSequence name, bool forceNull) { var att = Settings.FieldAttribute <SqlDbTypeAttribute>(route); Type cleanEnum = route.Type.UnNullify(); var referenceTable = Include(EnumEntity.Generate(cleanEnum), route); return(new FieldEnum(route.Type) { Name = name.ToString(), Nullable = Settings.IsNullable(route, forceNull), IsLite = false, ReferenceTable = referenceTable, AvoidForeignKey = Settings.FieldAttribute <AvoidForeignKeyAttribute>(route) != null, Default = att?.Default, }.Do(f => f.UniqueIndex = f.GenerateUniqueIndex(table, Settings.FieldAttribute <UniqueIndexAttribute>(route)))); }
protected override Field GenerateFieldPrimaryKey(Table table, PropertyRoute route, NameSequence name) { var att = Settings.FieldAttribute <SqlDbTypeAttribute>(route); SqlDbTypePair pair = Settings.GetSqlDbType(att, route.Type); var result = new FieldValue(route.Type) { PrimaryKey = true, Name = name.ToString(), SqlDbType = pair.SqlDbType, UserDefinedTypeName = pair.UserDefinedTypeName, Nullable = Settings.IsNullable(route, false), Size = Settings.GetSqlSize(att, pair.SqlDbType), Scale = Settings.GetSqlScale(att, pair.SqlDbType), }; return(result); }
protected virtual FieldImplementedByAll GenerateFieldImplementedByAll(PropertyRoute route, ITable table, NameSequence preName, bool forceNull) { bool nullable = Settings.IsNullable(route, forceNull); return(new FieldImplementedByAll(route.Type) { Column = new ImplementationStringColumn { Name = preName.ToString(), Nullable = nullable, Size = Settings.DefaultImplementedBySize, }, ColumnType = new ImplementationColumn { Name = preName.Add("Type").ToString(), Nullable = nullable, ReferenceTable = Include(typeof(TypeEntity), route), AvoidForeignKey = Settings.FieldAttribute <AvoidForeignKeyAttribute>(route) != null, }, IsLite = route.Type.IsLite(), AvoidExpandOnRetrieving = Settings.FieldAttribute <AvoidExpandQueryAttribute>(route) != null }.Do(f => f.UniqueIndex = f.GenerateUniqueIndex(table, Settings.FieldAttribute <UniqueIndexAttribute>(route)))); }
public virtual ObjectName GenerateTableNameCollection(Table table, NameSequence name, TableNameAttribute tn) { SchemaName sn = tn != null?GetSchemaName(tn) : SchemaName.Default; return(new ObjectName(sn, tn?.Name ?? (table.Name.Name + name.ToString()))); }