我有几个项目使用NH和FNH生成映射(一些Fluent一些Automapped)。我仍然需要一些bug和缺少的功能,但似乎FNH可能因为集成到NHibernate中的代码映射而死亡。
问题:有助于FNH或将映射迁移到代码映射或confORM并修复问题/实现功能吗?
答案 0 :(得分:7)
在我们的办公室,我们已经使用NHibernate 3年了。我们一直在考虑转向Fluent Nhibernate但从未采取行动。使用hbm.xml文件仍然是最容易调试/更改的。这些xml文件的两个常见问题是它们在创建sessionfactory期间都经过验证,并且它们不是重构安全的。
由于一个错误,我不得不更新NHibernate的新版本(我们使用的是NHib 2.1.2GA),当我实现3.2GA时,我们也获得了使用loquacious映射(通过代码映射)的能力。我决定使用Loquacious over Fluent,因为我没有依赖于另一个项目(Fluent),并且如果代码映射被破坏,NHibernate将不会被发送。
请注意,Loquacious映射也不完整。当我通过代码映射所有内容时,我发现像property-ref这样的基本内容并不总是实现。因此,即使它已发货,也不是100%完成。虽然这不会令人感到震惊,但它有缺陷。是。真。 ; - )
有关(报告)错误的更多信息,请查看NHibernate错误数据库:https://nhibernate.jira.com/browse/NH
希望这会有所帮助。 此致,特德
答案 1 :(得分:5)
.Database(SQLiteConfiguration.Standard.InMemory())
比
.DataBaseIntegration(db =>
{
db.ConnectionString = ???;
db.Dialect<SQLiteDialect>();
db.Driver<???>();
});
和一些功能:
更新: hbm.xml(和FluentMapping)的某些功能根本无法通过代码进行映射:
答案 2 :(得分:2)
修改强>
FNH Automapper可以处理对象模型中的大多数常见模式,例如继承,一对多关系,自引用等 - 无需程序员的任何帮助。到目前为止,纯NH还没有达到这种自动化水平。
此外,詹姆斯格雷戈里已经公开声明他将继续发展FNH,至少在短期内如此。 (想想我几个月前在FNH Google小组上看过这个,但我不确定到底在哪里)。