public ObjectRepository()
 {
     ObjectReaderWriter  = Repositories.ObjectReaderWriter.Default;
     MetaProvider        = Repositories.MetaProvider.Default;
     BlockOnChildWrites  = false;
     TypeSchemaGenerator = new TypeSchemaGenerator();
 }
        public ForeignKeyColumn ToForeignKeyColumn(ITypeTableNameProvider tableNameProvider = null)
        {
            ForeignKeyColumn result = new ForeignKeyColumn(Name, TypeSchemaGenerator.GetTableNameForType(_foreignKeyTableType),
                                                           TypeSchemaGenerator.GetTableNameForType(DeclaringType, tableNameProvider));

            result.DataType = DataTypes.Long;

            return(result);
        }
 public SqlStringBuilder WriteSchemaScript(Database database, TypeSchemaGenerator typeSchemaGenerator, SchemaManager schemaManager = null)
 {
     schemaManager = schemaManager ?? new SchemaManager {
         AutoSave = false
     };
     typeSchemaGenerator.SchemaManager = schemaManager;
     LastSchemaDefinitionCreateResult  = typeSchemaGenerator.CreateSchemaDefinition();
     return(WriteSchemaScript(database, LastSchemaDefinitionCreateResult));
 }
 protected void Initialize()
 {
     lock (_initLock)
     {
         if (!isInitialized)
         {
             if (!StorableTypes.Any())
             {
                 throw new InvalidOperationException("No types were specified.  Call AddType for each type to store.");
             }
             isInitialized = true;
             SchemaDefinitionCreateResult = TypeSchemaGenerator.CreateSchemaDefinition(StorableTypes);
         }
     }
 }
Exemple #5
0
 public PropertyColumn(PropertyInfo property)
 {
     PropertyInfo = property;
     string columnName = property.Name.LettersOnly();
     ColumnAttribute attr = null;
     if(property.HasCustomAttributeOfType<ColumnAttribute>(out attr))
     {
         columnName = attr.Name;
     }
     Column = new Column(columnName, TypeSchemaGenerator.GetColumnDataType(property));
     if(attr != null)
     {
         Column.AllowNull = attr.AllowNull;
     }
 }
Exemple #6
0
        private void CtorInit(ITypeTableNameProvider tableNameProvider = null, Func <SchemaDefinition, TypeSchema, string> schemaTempPathProvider = null)
        {
            TypeSchemaGenerator             = new TypeSchemaGenerator(tableNameProvider, schemaTempPathProvider);
            TypeDaoGenerator                = new TypeDaoGenerator(TypeSchemaGenerator);
            TypeDaoGenerator.SchemaWarning += (o, a) =>
            {
                FireEvent(SchemaWarning, a);
            };
            TypeDaoGenerator.GenerateDaoAssemblySucceeded += (o, a) =>
            {
                GenerateDaoAssemblyEventArgs args = (GenerateDaoAssemblyEventArgs)a;
                FireEvent(GenerateDaoAssemblySucceeded, args);
            };

            NullifyDaoAssemblyOnTypeAdd = true;
            WrapByDefault    = true;
            WarningsAsErrors = true;
            Logger           = Log.Default;
        }
        /// <summary>
        /// Instantiate a new instance of TypeDaoGenerator
        /// </summary>
        /// <param name="logger"></param>
        /// <param name="types"></param>
        public TypeDaoGenerator(ILogger logger = null, IEnumerable <Type> types = null)
        {
            _namespace                    = "TypeDaos";
            _daoGenerator                 = new DaoGenerator(DaoNamespace);
            _wrapperGenerator             = new WrapperGenerator(WrapperNamespace, DaoNamespace);
            _typeSchemaGenerator          = new TypeSchemaGenerator();
            _additonalReferenceAssemblies = new HashSet <Assembly>();

            TypeSchemaTempPathProvider = (schemaDef, typeSchema) => System.IO.Path.Combine(RuntimeSettings.AppDataFolder, "DaoTemp_{0}"._Format(schemaDef.Name));
            _types = new HashSet <Type>();
            if (logger != null)
            {
                Subscribe(logger);
            }
            if (types != null)
            {
                AddTypes(types);
            }
        }
        public KeyColumn ToKeyColumn(ITypeTableNameProvider tableNameProvider)
        {
            string name = "Id";

            if (DeclaringType != null)
            {
                PropertyInfo keyProperty = TypeSchemaGenerator.GetKeyProperty(DeclaringType);
                if (keyProperty != null)
                {
                    name = keyProperty.Name;
                }
            }
            return(new KeyColumn
            {
                TableName = tableNameProvider.GetTableName(DeclaringType),                //TypeSchemaGenerator.GetTableNameForType(DeclaringType),
                Name = name,
                DataType = DataTypes.Long
            });
        }
Exemple #9
0
 public sealed override void Subscribe(ILogger logger)
 {
     TypeDaoGenerator.Subscribe(logger);
     TypeSchemaGenerator.Subscribe(logger);
     base.Subscribe(logger);
 }
 public TypeDaoGenerator(TypeSchemaGenerator typeSchemaGenerator) : this()
 {
     _typeSchemaGenerator = typeSchemaGenerator;
 }