C# 如何使用NHibernate一次执行多个数据库更改?
我正在研究在桌面应用程序中使用Fluent NHibernate,该应用程序使用3个不同的数据库文件。(嗯,有三种不同的类型。)C# 如何使用NHibernate一次执行多个数据库更改?,c#,database,nhibernate,C#,Database,Nhibernate,我正在研究在桌面应用程序中使用Fluent NHibernate,该应用程序使用3个不同的数据库文件。(嗯,有三种不同的类型。) DB1是包含表A、B、C和D的主数据库文件 DB2是一个数据库文件,包含表E中的详细数据(每秒X个样本,程序会话将收到一个新文件,因为它们可能会变得非常大) DB3是一个数据库文件,用于在用户之间导出和导入数据(包含a中的1行、B中的1行以及属于a和B中给定行的所有E) 创建它并不是一个真正的问题,因为SchemaExport.Create函数可以很好地实现这一点
- DB1是包含表A、B、C和D的主数据库文件
- DB2是一个数据库文件,包含表E中的详细数据(每秒X个样本,程序会话将收到一个新文件,因为它们可能会变得非常大)
- DB3是一个数据库文件,用于在用户之间导出和导入数据(包含a中的1行、B中的1行以及属于a和B中给定行的所有E)
if (db_version < LATEST_VERSION) {
switch (db_version + 1) {
case 2: Execute("ALTER TABLE A..."); Execute("UPDATE A..."); break;
case 3: Execute("ALTER TABLE B..."); break;
}
}
我是完全错误地看待这一点,还是我的案例过于复杂,使用手动方法会更好?
使用Fluent NHibernate更新并从版本1迁移到版本3的最佳解决方案是什么?或者有人会推荐使用手动方法吗?如果是,为什么?我无法回答如何使用Fluent NHibernate来实现这一点,因为我从来没有想出一个好方法。在我看来,它不是为处理真正的数据库迁移而设置的。因此,对于我所有的Fluent NHibernate项目,我使用它并不完美,但它确实起到了作用。你是对的,通常使用“迁移”方法来构建数据库,你需要在这一过程中的每一步都保持不变。MigratorDotNET相当不错,但看起来创建者已经停止了贡献:。该线程中列出了几个备选方案。完全同意。我为这个问题列出了.NET空间中最常见的迁移工具列表。。。创造者在过去的几个月里贡献了一些。不过,总的来说,它已经相当不错了,而且很简单。无需安装Ruby来构建/迁移或诸如此类的东西。
namespace Version1 {
public class A {}
DoUpdate();
}
namespace Version2 {
public class A {}
DoUpdate();
}