写点什么

连贯 NHibernate 有相应的 Wiki 文档了

  • 2009-02-11
  • 本文字数:979 字

    阅读完需:约 3 分钟

InfoQ 之前报道过,我们可以在 NHibernate 中使用 XML 映射,这就是连贯 NHibernate。连贯 NHibernate 使用连贯接口,通过编码的方式代替XML 定义映射。有些社区成员抱怨连贯NHibernate 缺乏相关文档,对此James Gregory 最近做出了回应,他发布了连贯NHibernate 的官方Wiki 文档

Wiki 文档中的包含如下例子:

Wiki 站点把典型的映射解决方案都列举出来了,当中包括 XML 和连贯 NHibernate。下面代码显示的是 XML 部分:

复制代码
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
namespace="QuickStart" assembly="QuickStart">
<class name="Cat" table="Cat">
<id name="Id">
<generator class="identity" />
</id>
<property name="Name">
<column name="Name" length="16" not-null="true" />
</property>
<property name="Sex" />
<many-to-one name="Mate" />
<bag name="Kittens">
<key column="mother_id"/>
<one-to-many class="Cat"/>
</bag>
</class>
</hibernate-mapping>

下面代码显示相同映射的连贯 NHibernate 代码:

复制代码
public class CatMap : ClassMap
{
public CatMap()
{
Id(x => x.Id);
Map(x => x.Name)
.WithLengthOf(16)
.Not.Nullable();
Map(x => x.Sex);
References(x => x.Mate);
HasMany(x => x.Kittens);
}
}

文章还提到:

尽管 XML 代码的部分比较优美,但是它可能会导致意想不到的结果。

接着,文中还列举了一些例子:

  • 由于编译器并不对 XML 进行估算,我们可以在映射中对未更新的类的多个属性进行重命名。在这种情况下,直到运行时才会发现解析映射的问题
  • XML 很冗长;NHibernate 逐步减低 XML 的强制元素,但我们仍不能避免 XML 的繁杂性
  • 重复的映射 - 如果我们不断地定义同样的规则,就会发现 NHibernate HBM 映射相当的冗长。例如,确保 string 属性为非空且长度为 1000 的时候,以及确保所有的 int 对象的默认值为 -1 的时候

去年的 8 月份,Oren Eini(也叫 Ayende Rahien ) 指出连贯的 NHibernate 并没有任何价值,因为每个实体必须有一个映射类。然而,从那时起,项目就进行革新,现在就有了自动映射的概念,这正是Ayende 所需要的。自动映射特性使用一套规则来自动映射所有实体,并非每个实体都需要映射类。

查看英文原文: Fluent NHibernate Has a Wiki

2009-02-11 22:021220
用户头像

发布了 87 篇内容, 共 21.1 次阅读, 收获喜欢 1 次。

关注

评论

发布
暂无评论
发现更多内容

以A.I.之力打破方言沟通障碍 科大讯飞重磅发布智慧翻译系统

Talk A.I.

如何生成 Flink 作业的交互式火焰图?

Apache Flink

flink

Vidyo的技术特点都有哪些?

dwqcmo

音视频 集成架构 解决方案 智能硬件

【JSRC小课堂】Web安全专题(一)认证缺失和认证缺陷漏洞

京东科技开发者

WEB安全

实用!8个 chrome插件玩转GitHub,单个文件下载小意思

程序员小富

GitHub

30 岁的码农人生 ——人生至暗时,你依然能窥见光明

苹果看辽宁体育

程序员 程序人生 感悟

uni-app支持PC宽屏适配

崔红保

uni-app 大前端

爬虫“学前班”,记住这些不踩坑!

华为云开发者联盟

爬虫 数据 搜索

小程序云开发实战:从0搭建科技爱好者周刊小程序

薛定喵君

微信小程序 小程序云开发 云开发

大企程序员亲身经历告诉你,CRM系统,自己的才是最好的

Learun

敏捷开发

基于阿里云容器的CI/CD落地实践

LorraineLiu

阿里云 k8s Helm jenkins CI/CD

云开发·多次订阅一次性订阅消息后定时发送

Yukun

微信小程序 小程序云开发 消息推送 订阅消息

WebSocket-技术专题-服务器端消息推送

洛神灬殇

即构SDK10月迭代:新增多款语音音效、外部采集码流控制及Android SDK 最低支持操作系统版本调整

ZEGO即构

android RTC

阿里巴巴专属著作超赞,就是名字起得有点狂“成神之路”???

Java架构师迁哥

架构师训练营第六周作业

Geek_4c1353

搜狗搜索或成为企鹅号流量入口:腾讯欲实现自己的流量闭环

石头IT视角

我服了,难倒无数程序员的源码面试,就这样被轻轻松松讲透彻

小Q

Java 学习 源码 架构 面试

API生态的发展与机遇:从5000组数据看中国API生态与开发者现状

华为云开发者联盟

华为 API

来自阿里面试官的Java面试连珠炮,让你自由发挥你能撑到哪一步?

Java架构之路

Java 程序员 架构 面试 编程语言

求职时这样回答问题你就输了!来自IT类面试官视角的深度解读

华为云开发者联盟

面试 软件开发

个人计算机、工作站、服务器的主要区别

德胜网络-阳

一文读懂GaussDB(openGauss) 的六大关键技术特性

华为云开发者联盟

数据库 数据 存储

最近程序员频繁被抓,如何避免面向监狱编程!?

Java架构师迁哥

10 张图打开 CPU 缓存一致性的大门

小林coding

缓存 cpu 操作系统 计算机

「深度解析」告诉你如何选择容器存储

焱融科技

Kubernetes 容器 云原生 焱融科技 分布式文件存储

分布式文件存储QoS硬核黑科技,真香

焱融科技

高性能 存储 HPC 分布式文件存储 QoS

程序员不愿意说的秘密!Java进阶架构师必看:架构完美设计+程序员三门课+架构修炼之道

Java架构追梦

接口测试工具

测试人生路

接口文档 接口测试

MySql从青铜到王者晋级之路,阿里大牛经验总结让牛少走弯路!

Java架构之路

Java 程序员 架构 面试 编程语言

你有时间吗?

池建强

时间

连贯NHibernate有相应的Wiki文档了_.NET_Jon Arild Tørresdal_InfoQ精选文章