写点什么

连贯 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:021680
用户头像

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

关注

评论

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

MySQL慢查询(下):问题解决,干货总结

架构精进之路

MySQL MySQL 高可用 MySQL优化 28天写作

第七周 性能优化作业

简简单单

大作业2

蓝黑

4.5万字手把手教你实现MySQL TB级数据存储!!

冰河

MySQL 分布式 微服务 数据存储 mycat

架构师培训第二周课后作业

跳蚤

有关架构设计原则的总结

跳蚤

架构师训练营一期大作业一

陈龙

反对没有节制的加班文化

熊斌

管理 职场 工作思路 28天写作

week7-总结

J

Java并发编程实战(3)- 互斥锁

技术修行者

Java 并发编程 多线程

架构师训练营一期大作业二

陈龙

中华石衫 Elasticsearch 顶尖高手系列课程

escray

elasticsearch elastic 28天写作 死磕Elasticsearch

HDFS SHELL详解(3)

罗小龙

hadoop 28天写作 hdfs shell

第七周 学习总结

简简单单

Windows10 Kafka Docker 集群搭建

Docker kafka

Java程序经验小结:谨慎的使用本地方法

后台技术汇

28天写作

架构师系列 13 Spark 大数据处理在金融领域中的应用

桃花原记

堡垒机是什么?

第12周作业

Jack

Java Kafka 简单示例

Java kafka

数仓面试高频考点--解决hive小文件过多问题

五分钟学大数据

大数据 hive 面试 数仓

微信视频号的不同 | 视频号28天(03)

赵新龙

28天写作

汽油车最简知识——28天写作Day2/28

mtfelix

28天写作 电动汽车

python自学 第一章 初始python

WEB前端修行日志

Python

RocketMQ如何保证消息可靠性

废材姑娘

RocketMQ

程序员练习算法的几个实用技巧

Phoenix

算法

从大局着眼,立微处发力

张老蔫

28天写作

创业也是要帮助他人突破认知 Jan 10, 2021

王泰

28天写作

技术人小故事-团队愿景篇-第2段

Ian哥

28天写作

面试官:换人!赶快换人!连 CopyOnWriteArrayList 都没听过!

xcbeyond

Java 28天写作 CopyOnWriteArrayList

week7-homework

J

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