我正在通过 System.Data.SQLite 和 SubSonic 3 使用 Visual Studio 2008、C#、SQLite。我的应用程序已进入需要升级数据库架构(添加列、触发器等)然后通过 SubSonic 添加新记录的状态生成的 ActiveRecord 对象 - 都在单个事务的范围内,以便可以很好地回滚任何失败。
理想情况下,这是我希望做的事情:
Begin Transaction
try
Update Schema to latest version
Use SubSonic objects to add new records/modify existing
Commit Transaction
catch
Rollback Transaction
不幸的是,这不起作用。所有架构更改当前都是通过 SubSonic.Query.CodingHorror 进行的,这似乎不尊重事务。有没有办法在单个事务的范围内执行架构更改和 SubSonic 数据更改?