NHibernte Fluent 与 XML 映射

发布于 2024-10-20 00:25:42 字数 76 浏览 1 评论 0原文

我看到围绕 NH Fluent 接口产生了很多讨论,那么使用 Fluent 代替 XML 映射和 Criteria API 有什么好处呢?

I see a lot of buzz generated around NH Fluent interface, so what is the benefit of using Fluent instead of XML mapping and Criteria API?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

删除会话 2024-10-27 00:25:42
  1. 重构友好(重命名不会破坏映射)
  2. 具有可配置约定的
  3. 自动映射 域映射中的智能感知
  4. 编译时验证
  1. Refactoring friendly (renames won't break mappings)
  2. Automappings with configurable conventions
  3. Intellisense in mappings for your domain
  4. Compile time validation
一页 2024-10-27 00:25:42

我发现最有用的是 Fluent NH 中的 AutoMapping by convention 功能。基本上它会为您映射所有内容,如果您需要一些复杂的映射,那么您可以通过属性覆盖它。

鉴于您只需在实体文件夹中添加新实体并开始使用它,而无需进行映射,这通常是随之而来的。

What I found most useful is AutoMapping by conventions feature in Fluent NH. Basically it maps everything for you, and if you need some complex mapping then you can override it by property.

Given that you can just add new Entity in your Entities folder and start using it, without mapping fuss, that usually comes with it.

草莓酥 2024-10-27 00:25:42

需要明确的是,您正在谈论 FluentNhibernate 映射库,对吗?它与查询无关,因此可以与 hql 或

我要求的条件 api 一起使用,因为条件 api 遵循 Fluent接口模式,因此可能被认为是 Fluent NH。

Criteria 与 Hql 的优点和缺点很多,但基本上 ICriteria 更适合以编程方式构建查询,而如果给定的查询永远不会改变(参数除外),则 hql 更好。恕我直言。您还可以使用 hql 执行一些使用标准 api 无法执行的操作,例如分组和不相关的连接。

Just to be clear you're talking about the FluentNhibernate mapping library right? It's not related to querying so it can be used with hql or the criteria api

I ask because the Criteria api follows the fluent interface pattern and so might be considered Fluent NH.

The pros and cons of Criteria vs Hql are numerous but basically ICriteria is better for programmatically building your queries and hql is better if the given query will never change (excepting parameters) IMHO. You can also do a few things with hql like grouping and unrelated joins that you can't do with the criteria api.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文