写点什么

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

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

关注

评论

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

Linux配置SSH免密码登录(非root账号)

程序员欣宸

SSH 8月月更

C++运算符重载(三)之递增运算符重载

CtrlX

c c++ 代码 进阶员进阶 8月月更

5 张弹珠图彻底弄清 RxJS 的拉平策略:mergeMap、switchMap、concatMap、exhaustMap

掘金安东尼

前端 RXJS 8月月更

【精通内核】计算机程序的本质、内存组成与ELF格式

小明Java问道之路

编译原理 ELF 链接 签约计划第三季 8月月更

vue高频面试题合集(一)附答案

helloworld1024fd

Vue

SAP 产品增强技术回顾

汪子熙

SaaS SAP 企业级应用 云应用 8月月更

学习Apache ShardingSphere解析器源码(一)

我不吃六安茶

ANTLR Apache ShardingSphere

Android进阶(一)Android 发邮件与几种网络请求方式详解

No Silver Bullet

android 8月月更 邮件发送

云原生(十三) | Kubernetes篇之深入Kubernetes(k8s)概念

Lansonli

云原生 k8s 8月月更

Open Office XML 格式中的 Style 设计原理

汪子熙

xml 微软 Office 8月月更 openOffice

突破次元壁垒,让身边的玩偶手办在屏幕上动起来!

HarmonyOS SDK

鲲鹏编译调试及原生开发工具基础知识

乌龟哥哥

8月月更

vue高频面试题合集(二)附答案

helloworld1024fd

Vue

STM32入门开发 LWIP网络协议栈移植(网卡采用DM9000)

DS小龙哥

8月月更

前端面试 | 必知必会的10道Promise题!

千锋IT教育

数字钱包红海角逐,小程序生态快速引入可助力占领智慧设备入口

FinClip

浅谈Java和SAP ABAP的静态代理和动态代理,以及ABAP面向切面编程的尝试

汪子熙

编程语言 oop aop spring aop 8月月更

在座的Python爬虫工程师,你敢爬律师事务所站点吗?

梦想橡皮擦

Python 爬虫 8月月更

Spring 全家桶之 Spring Data JPA(一)

小白

8月月更

React Redux 组件更新/渲染原理 connect 中的 mapStateToProps

HullQin

CSS JavaScript html 前端 8月月更

数据库 SQL 优化大总结之:百万级数据库优化方案

TimeFriends

8月月更

OAuth Client默认配置加载

阿提说说

Spring Security OAuth

全新FIDE 编译简单评测

Geek_99967b

小程序

开源一夏|OpenHarmony如何选择图片在Image组件上显示(eTS)

坚果

开源 OpenHarmony 8月月更

开源一夏 | 粗暴项目监控,快速上手Spring家族的亲儿子SpringAdmin监控项目

知识浅谈

spring 开源 8月月更

开源一夏 | 参与开源能让人更幸福

石云升

开源 开源社区 8月月更

软件定制开发——企业定制开发app软件的优势

开源直播系统源码

软件开发 直播系统源码 app定制开发 软件定制开发

【LeetCode】重新格式化字符串Java题解

Albert

LeetCode 8月月更

ABAP应用服务器的HTTP响应状态码(Status Code)

汪子熙

前端开发 HTTP web开发 SAP 8月月更

Kubernetes 维护技术分享

CTO技术共享

开源 签约计划第三季 8月月更

开源一夏|5分钟快速为OpenHarmony提交PR(Web)

坚果

开源 OpenHarmony 8月月更

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