写点什么

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

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

关注

评论

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

苹果电脑鼠标键盘捕捉工具 Macro Recorder Enterprise for mac

Rose

Maxon Cinema 4D R25中文破解版(c4d安装教程)-Mac&win

Rose

大数据行业怎么定义?是否需要堡垒机?

行云管家

大数据 堡垒机 大数据行业

怎么在ppt中替换字体?分享3个ppt必备的使用技巧!

职场工具箱

效率工具 职场 PPT 办公软件 AI生成PPT

BOM是什么?怎么创建BOM?BOM有什么分类?

积木链小链

ERP BOM ERP软件

macOS免费好用的硬盘测速工具 Blackmagic Disk Speed Test

Rose

OpenAI 再发 Sora 新短片,传 Sora 两周内推出;李飞飞团队出品空间智能版 ImageNet丨 RTE 开发者日报

声网

3D渲染和动画制作 Luxion KeyShot2023下载+Luxion KeyShot2023破解教程

Rose

易于使用的多连接数据库管理工具 Navicat Premium 16 Mac中文包

Rose

全面解析交易所开发:源码、搭建公司选择与开发费用

区块链软件开发推广运营

交易所开发 链游开发 钱包开发 链游开发dapp开发 链游开发dapp开发公链开发

日照等保测评机构有哪些?电话多少?

行云管家

等保 堡垒机 日照

SmartSVN 11 Mac破解版 SVN客户端Mac软件安装

Rose

Hive on Spark实战:深入理解与配置Spark集群

敏捷调度TASKCTL

scala MySQL hadoop hive jdk

企业在财务规划过程中,如何避免零基预算的常见陷阱

智达方通

零基预算 财务规划

《深入浅出Apache Spark》系列②:Spark SQL原理精髓全解析

数新网络官方账号

sql

Axure RP 10 for Mac中文汉化版 附Axure RP 10 永久激活码

Rose

好用的延迟摄影后期渲染工具 LRTimelapse Pro 7详细功能介绍

Rose

外贸货币汇率转换解决方案

幂简集成

API 货币兑换API

一文彻底弄懂JUC工具包的CountDownLatch的设计理念与底层原理

不在线第一只蜗牛

Java 算法

PPSSPPSDL for mac(PSP游戏模拟器)附PSP游戏安装包 v1.17.1激活版

Rose

电池保养管理及续航提升工具 Endurance Mac破解版

Rose

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