【发布时间】:2017-01-20 01:01:18
【问题描述】:
我最近接受了一个 .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 和测试系统中更新数据库的最佳做法是什么?是否有可能采用“代码优先方法”,我只扩展 DAO 然后更新数据库?
【问题讨论】:
标签: c# .net iis-7.5 ormlite-servicestack