2025上半年,最新 AI实践都在这!20+ 应用案例,任听一场议题就值回票价 了解详情
写点什么

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

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

关注

评论

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

FL Studio2024中文版本水果软件下载

茶色酒

FL Studio FL Studio 21

人生的喜悦、不快与成长,都在那一篇篇的文字中得到记录 | 2022 年终总结

宇宙之一粟

年终总结 人生故事 代码之外 12月月更

什么样的魔法棒,能让AI魔法师一夜成名?

脑极体

华为云微服务引擎0停机迁移Nacos?它是这样做的

科技之光

华为云CDN引领网站性能全面优化

爱科技的水月

缓解等待焦虑,华为云CDN为您提供畅快下载体验

爱科技的水月

助力网络碳中和 | 华为发布站点能源十大趋势

极客天地

【web 开发基础】PHP查询数组中的指定元素 (50)

迷彩

数组 数组操作 二维数组 PHP基础 数组查询

干货|无源元件之——电感基础知识(详解)

元器件秋姐

科普 电感器 电感 电感元件 电子知识

APISIX Ingress 对 Gateway API 的支持和应用

API7.ai 技术团队

云原生 APISIX API Gateway Ingress Controller

华为云OBS:让大数据的容器再无容量限制

爱尚科技

智能且高效,华为云CDN三大特点助企业云上创新

爱科技的水月

2022卡塔尔世界杯专题分析

易观分析

世界杯 体育

小米封杨:工业设备预测性维护及时序数据库选型

YMatrix 超融合数据库

工业4.0 超融合数据库 预测性维护 设备预测性维护 YMatrix

华为云对象存储OBS超高性能数据存储能力,推进企业快速上云

爱尚科技

超融合一体流式引擎,打造分布式数据库新纪元

亚信AntDB数据库

AntDB 国产数据库 AntDB数据库

CleanMyMac2024激活码使用教程

茶色酒

CleanMyMac CleanMyMac X

云渲染一张图大概多久?云渲染快吗?

Renderbus瑞云渲染农场

云渲染

企业数据存储,还得看华为云对象存储服务OBS

爱尚科技

HTTPS基础知识

穿过生命散发芬芳

https 12月月更

让下载速度更快更稳,华为云CDN多重技术助力网络加速

爱科技的水月

界面原型设计

芯动大师

android GUI设计 mockplus droiddraw

【web 开发基础】PHP中获取数组的元素个数 (51)

迷彩

数组 数组操作 PHP基础 数组查询 统计数组

【架构设计】保持简单轻量设计的三个原则——DRY,KISS, YAGNI

JAVA旭阳

Java 架构

什么样的魔法棒,能让AI魔法师一夜成名?

白洞计划

C#-使用Consul

kdyonly

C#

MatrixDB v4.6.0 发布,查询性能和图形化操作界面全面升级!

YMatrix 超融合数据库

Prometheus 存储引擎 超融合数据库 YMatrix MatrixGate

2022-12-29:nsq是go语言写的消息队列。请问k3s部署nsq,yaml如何写?

福大大架构师每日一题

云原生 k8s k3s nsq 福大大

华为云OBS对象存储服务:这个管家很贴心

爱尚科技

亚信科技通信、交通行业数据库项目入选“星河”标杆、优秀案例

亚信AntDB数据库

AntDB 国产数据库 AntDB数据库

cleanmymac2024永久版mac系统清理软件

茶色酒

CleanMyMac CleanMyMac X

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