最佳实践 - 如何在ServiceStack.OrmLite .NET项目中扩展数据库?

时间:2017-01-19 16:29:30

标签: c# .net iis-7.5 ormlite-servicestack

我最近采用了一个.Net项目,通过ServiceStack REST API从Microsoft SQL数据库中公开DAOs。服务器在IIS 7.5上运行

AppHost.Configure中创建了完整的数据库模式......

var dbFactory = new OrmLiteConnectionFactory(DI.DefaultConnectionString, SqlServerOrmLiteDialectProvider.Instance);
        using (var db = dbFactory.OpenDbConnection())
        {
            if (!db.TableExists(db.GetTableName<SomeSpecificDAO>())) //Create table if not exists
            {
                db.CreateTable<SomeSpecificDAO>();
                db.Insert(new SomeSpecificDAO { Data = 0, AnotherData = "", AnSoOne =  });
            }

        /// alot more tables follow....
        }

当我现在想要扩展DAO(并因此将新列添加到表中)时,我会在Visual Studio中执行此操作,对其进行测试,如果可行,我将通过以下方式远程添加列现场测试服务器上的Microsoft SQL Server Management Studio,因为我不想丢失数据库中的任何数据。当只添加一列时,这不是很快,如果添加更多的表/列或f.e.它可能非常麻烦。单元格的数据类型已更改。

在Visual Studio和测试系统中更新数据库的最佳做法是什么?是否有可能采用“Code First方法”,我只扩展DAO然后更新数据库?

1 个答案:

答案 0 :(得分:1)

查看此existing thread in the ServiceStack Customer Forums,它解释了处理数据库架构更改的不同策略。