我有几个项目使用 NH 和 FNH 来生成映射(一些流利的一些自动映射)。我仍然需要一些错误和缺少的功能,但似乎 FNH 可能会因为集成到 NHibernate 中的按代码映射而死。
问题:为 FNH 做贡献或将映射迁移到按代码映射或 confORM 并在那里修复问题/实现功能?
我有几个项目使用 NH 和 FNH 来生成映射(一些流利的一些自动映射)。我仍然需要一些错误和缺少的功能,但似乎 FNH 可能会因为集成到 NHibernate 中的按代码映射而死。
问题:为 FNH 做贡献或将映射迁移到按代码映射或 confORM 并在那里修复问题/实现功能?
在我们的办公室,我们已经使用 NHibernate 3 年了。我们一直在考虑转向 Fluent Nhibernate,但从未采取行动。使用 hbm.xml 文件仍然是最容易调试/更改的。这些 xml 文件的两个常见问题是它们都在创建 sessionfactory 期间进行了验证,并且它们不是重构安全的。
由于一个错误,我不得不更新 NHibernate 的新版本(我们使用的是 NHibernate 2.1.2GA),当我实现 3.2GA 时,我们还获得了使用 loquacious 映射(通过代码映射)的能力。我决定使用 Loquacious 而不是 Fluent,因为我不依赖另一个项目 (Fluent),而且如果代码映射被破坏,NHibernate 将不会发布。
但请注意,Loquacious 映射也不完整。当我通过代码映射所有内容时,我发现诸如 property-ref 之类的基本内容并不总是被实现。因此,即使它已经发货,它也不是 100% 完成的。虽然这不会令人震惊,但它有错误。是的。真的。;-)
有关(报告的)错误的更多信息,请查看 NHibernate 错误数据库:https ://nhibernate.jira.com/browse/NH
希望这可以帮助。问候,特德
感谢@TedOnTheNet,我将继续使用并为 FNH 做出贡献,因为在某些领域,代码映射到达 FNH 需要一段时间
.Database(SQLiteConfiguration.Standard.InMemory())
仍然比弄清楚
.DataBaseIntegration(db =>
{
db.ConnectionString = ???;
db.Dialect<SQLiteDialect>();
db.Driver<???>();
});
和一些特点:
更新: hbm.xml(和 FluentMapping)中的某些功能根本无法通过代码映射实现:
据我所知,NH 3.2 没有任何与 FNH 的 Automapping 相当的功能。(对我来说,这将是一个交易破坏者)。
编辑
FNH Automapper 可以处理对象模型中的大多数常见模式,例如继承、一对多关系、自引用等——无需程序员的任何帮助。到目前为止,纯氨还没有达到这种自动化水平。
此外,James Gregory 公开表示他将继续开发 FNH,至少在短期内是这样。(想想几个月前我在 FNH Google 小组上看到了这个,但我不确定具体在哪里)。