如何确保流畅的NHibernate映射和迁移同步?

如何确保流畅的NHibernate映射和迁移同步?,nhibernate,orm,fluent-nhibernate,database-migration,Nhibernate,Orm,Fluent Nhibernate,Database Migration,我使用Migrator.Net对数据库模式进行版本设置,使用Fluent-NHibernate将模型映射到模式 是否有一种好的(读取:自动)方法来比较运行迁移生成的模式与NH模式导出生成的模式,以确保表定义、键、索引等同步 我唯一能想到的就是导出这两个模式,然后使用一些未知的(如果你知道一个好的答案的话)库来编写它们的脚本,然后比较脚本字符串 有更好的办法吗 编辑:为了澄清,我不仅要验证表、列和列类型,还要验证索引和外键。我认为检查FNH生成的映射是否与DB架构同步就足够了。 为此,您可以使用我

我使用Migrator.Net对数据库模式进行版本设置,使用Fluent-NHibernate将模型映射到模式

是否有一种好的(读取:自动)方法来比较运行迁移生成的模式与NH模式导出生成的模式,以确保表定义、键、索引等同步

我唯一能想到的就是导出这两个模式,然后使用一些未知的(如果你知道一个好的答案的话)库来编写它们的脚本,然后比较脚本字符串

有更好的办法吗


编辑:为了澄清,我不仅要验证表、列和列类型,还要验证索引和外键。

我认为检查FNH生成的映射是否与DB架构同步就足够了。

为此,您可以使用

我认为检查FNH生成的映射与您的DB模式是否同步就足够了。

为此,您可以使用NHibernate中的模式验证器:

SchemaValidator validator = new SchemaValidator(configuration);
validator.Validate();

NHibernate中有一个模式验证器:

SchemaValidator validator = new SchemaValidator(configuration);
validator.Validate();

我认为这仍然有效,但有点过时了。Stefan和Sly的都是最新的。我认为这仍然有效,但有点过时了。Stefan和Sly的都是最新的。看起来很完美,这验证了索引和键以及表吗?我真的不知道。我希望它验证同样由
SchemaExport
生成的所有内容,这些内容也是键、独立项和约束。可以肯定的是,试一下或者读一下代码。看看代码,它看起来像是在检查标识字段,但我不认为它是在检查键或索引,这很糟糕。我不知道要加上它有多难,也许我会走这条路。这看起来很完美,这能验证索引和键以及表吗?我真的不知道。我希望它验证同样由
SchemaExport
生成的所有内容,这些内容也是键、独立项和约束。可以肯定的是,试一下或者读一下代码。看看代码,它看起来像是在检查标识字段,但我不认为它是在检查键或索引,这很糟糕。我不知道要加上这一点有多难,也许我会走这条路。