private static void Initialize(string connectString, string modelSpaceName) { IDataProvider provider = ProviderFactory.GetProvider(connectString); BatchQuery query = new BatchQuery(provider); Assembly assembly = Assembly.Load(Const.FRAME_MODEL_MASTER); var migrator = new SubSonic.Schema.Migrator(assembly); string[] commands = migrator.MigrateFromModel(modelSpaceName, provider); foreach (var s in commands) { query.QueueForTransaction(new QueryCommand(s.Trim(), provider)); } query.ExecuteTransaction(); }
void Migration() { var assembly = System.Reflection.Assembly.GetExecutingAssembly(); var prov = SubSonic.DataProviders.ProviderFactory.GetProvider(); var sqlConn = new SqlConnection(prov.ConnectionString); var types = assembly.GetTypes(); sqlConn.Open(); foreach (var item in types) { if (item.BaseType.Name == typeof(TableObject).Name) { var migrator = new SubSonic.Schema.Migrator(assembly); var tableObject = assembly.CreateInstance(item.Name); var type = assembly.GetType(item.FullName); string[] commands = migrator.MigrateFromModel(type, prov); var command = sqlConn.CreateCommand(); command.CommandText = commands.First(); command.ExecuteNonQuery(); } } }