FluentNHibernate或端口到NHibernate的代码映射
我有几个项目使用NH和FNH生成映射(一些是流畅的,一些是自动映射的)。我仍然需要一些bug和缺少的特性,但FNH可能会因为集成到NHibernate中的代码映射而消亡FluentNHibernate或端口到NHibernate的代码映射,nhibernate,fluent-nhibernate,nhibernate-mapping,fluent-nhibernate-mapping,mapping-by-code,Nhibernate,Fluent Nhibernate,Nhibernate Mapping,Fluent Nhibernate Mapping,Mapping By Code,我有几个项目使用NH和FNH生成映射(一些是流畅的,一些是自动映射的)。我仍然需要一些bug和缺少的特性,但FNH可能会因为集成到NHibernate中的代码映射而消亡 问题:为FNH做出贡献,或者将映射迁移到通过代码映射,或者整合并修复那里的问题/实现功能?在我们的办公室,我们已经使用NHibernate三年了。我们一直在考虑迁移到Fluent Nhibernate,但从未迁移。使用hbm.xml文件仍然是最容易调试/更改的。这些xml文件的两个常见问题是,它们都是在创建sessionfact
问题:为FNH做出贡献,或者将映射迁移到通过代码映射,或者整合并修复那里的问题/实现功能?在我们的办公室,我们已经使用NHibernate三年了。我们一直在考虑迁移到Fluent Nhibernate,但从未迁移。使用hbm.xml文件仍然是最容易调试/更改的。这些xml文件的两个常见问题是,它们都是在创建sessionfactory期间经过验证的,并且它们不是重构安全的 由于一个bug,我不得不更新新版本的NHibernate(我们使用的是NHib 2.1.2GA),当我实现3.2GA时,我们还获得了使用语言映射(通过代码映射)的能力。我决定在Fluent上使用Loquacious,因为我不依赖于另一个项目(Fluent),而且如果代码映射被破坏,NHibernate将不会被发布 但是要注意,冗长的映射也不是完整的。当我通过代码映射所有东西时,我发现像property ref这样的基本东西并不总是实现的。因此,即使已经发货,也不是100%完整。虽然这不会令人震惊,但它也有缺陷。对真的 有关(报告的)错误的更多信息,请查看NHibernate错误数据库: 希望这有帮助。
至于Ted,据我所知,NH3.2没有任何远程等同于FNH的自动映射功能。(对我来说,这将是一个交易破坏者) 编辑 FNH Automapper可以处理对象模型中的大多数常见模式,例如继承、一对多关系、自引用等,而无需程序员的任何帮助。到目前为止,纯NH还没有达到这样的自动化水平
此外,詹姆斯·格雷戈里(James Gregory)已公开表示,他将继续发展FNH,至少在短期内如此。(我想我几个月前在FNH Google group上看到过这一点,但我不确定具体在哪里)。thx到@TedOnTheNet我将继续使用并为FNH做出贡献,因为在某些领域,代码映射需要一段时间才能达到FNH
- 自动映射
- fluentapi告诉我们哪些可能性更好
- 更详细的映射
比.Database(SQLiteConfiguration.Standard.InMemory())
.DataBaseIntegration(db => { db.ConnectionString = ???; db.Dialect<SQLiteDialect>(); db.Driver<???>(); });
.DataBaseIntegration(db=> { db.ConnectionString=???; db.方言(); db.Driver(); });
- 每个子类的CompositeId和表
- 传统列的默认值
- 属性参考
- 旧列的默认值:
- 仅查询属性/集合: