当前位置: 首页 > news >正文

NHibernate实例分享:Northwind Mapping

本节内容

  • 说明
  • 代码
  • 参考资料

说明

NHibernate的强大之处在于其映射,我们在设计Domain中,经常为各种各样的映射感到头痛,为此我把微软SQL Server2000自带的Northwind数据库使用NHibernate映射了一下,需要的请下载其代码,在文章中就不仔细说明了,一切都在代码中。

顺便说一句,其实映射不必这么复杂的写出全部:

<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"> <class name="YourApp.Common.DataObjects.Address, YourApp" table="Address"> <id name="Id" type="Int32" unsaved-value="null"> <column name="Id" length="4" sql-type="int" not-null="true" unique="true" index="PK_Address"/> <generator class="native" /> </id> <property name="Address1" type="String"> <column name="Address1" length="255" sql-type="varchar" not-null="true"/> </property> <property name="Address2" type="String"> <column name="Address2" length="255" sql-type="varchar" not-null="false"/> </property> <property name="City" type="String"> <column name="City" length="255" sql-type="varchar" not-null="true"/> </property> <property name="State" type="String"> <column name="`State`" length="2" sql-type="varchar" not-null="true"/> </property> <property name="Zip" type="String"> <column name="Zip" length="12" sql-type="varchar" not-null="true"/> </property> <many-to-one name="Contact" class="YourApp.Common.DataObjects.Contact, YourApp"> <column name="Contact_Id" length="4" sql-type="int" not-null="false"/> </many-to-one> <bag name="BillToOrderHeaders" inverse="true" lazy="true" cascade="all-delete-orphan"> <key column="BillToAddress_Id"/> <one-to-many class="YourApp.Common.DataObjects.OrderHeader, YourApp"/> </bag> <bag name="ShipToOrderHeaders" inverse="true" lazy="true" cascade="all-delete-orphan"> <key column="ShipToAddress_Id"/> <one-to-many class="YourApp.Common.DataObjects.OrderHeader, YourApp"/> </bag> </class> </hibernate-mapping>

其实这样就可以了,不要把默认的都写上去的,我这个例子映射写的最简洁,大家下载看看吧

<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="YourApp" namespace="YourApp.Common.DataObjects"> <class name="Address"> <id name="Id"> <generator class="native" /> </id> <property name="Address1" not-null="true" /> <property name="Address2"/> <property name="City" not-null="true"/> <property name="State" length="2" not-null="true"/> <property name="Zip" length="12" not-null="true"/> <many-to-one name="Contact" column="Contact_Id"/> <bag name="BillToOrderHeaders" inverse="true" cascade="all-delete-orphan"> <key column="BillToAddress_Id"/> <one-to-many class="OrderHeader"/> </bag> <bag name="ShipToOrderHeaders" inverse="true" cascade="all-delete-orphan"> <key column="ShipToAddress_Id"/> <one-to-many class="OrderHeader"/> </bag> </class> </hibernate-mapping>
http://www.cnnetsun.cn/news/3175230.html

相关文章:

  • 2026年全铜卫浴五金洁具厂商口碑情况汇总
  • Vben精讲:06-Vben环境变量配置
  • MoeKoe Music终极指南:如何用开源免费客户端享受VIP音乐体验
  • Python自动化测试·Selenium操控元素的方法
  • 从Qwen-AgentWorld看大模型智能体如何操作真实系统:架构、挑战与工程实践
  • Cline 配置 Claude Sonnet 5 实战指南:思考深度调优与切换 Fable 5 的时机
  • 恶劣天气数据集 极端天气数据集 雨天道路数据集 雾天道路数据集 雪天马路恶劣环境图像目标检测数据集-道路障碍物识别数据集-数据集第10119期
  • 三千米浮空飞艇视频接入,广域立体视频孪生全域侦监技术解读 野外复杂地形动态重建 · 演训场景视频孪生目标三维重构完整体系
  • 毕业生必备7款AI写作辅助网站,一站式搞定选题初稿与降AI率
  • GHelper:华硕笔记本开源高效控制工具的专业替代方案
  • 成都茶台定制推荐
  • YOLOv10模型改进-Neck改进-第74篇:YOLOv10改进策略【Neck】| FPN-DCN可变形卷积
  • 连锁超市收银系统选什么?千店实测与商拓深度测评
  • 【湍流】基于matlab对涡粘性和雷诺应力模型FVM实现湍流通道流【含Matlab源码 15687期】含报告
  • 如何选择合适的面试机构?
  • 一文吃透 Transformers 模型加载:from_pretrained 参数大全与推理全流程解析
  • 磁吸易装 + 稳定传输,打造高效机房 U 位资产管理方案
  • 像素地理锚定标准化模型 Pixel2Geo引擎构建视频孪生空间基准体系 虚实双向指令交互通道 视频孪生联动前端感知设备智能处置技术详解
  • PPO强化学习
  • 嵌入式系统调度算法介绍
  • 【Python环境】从零解读PyCharm项目结构:虚拟环境、外部库与uv包管理器
  • 大模型微调实战:从LoRA原理到Qwen2-7B金融问答模型部署
  • 直方图靠右曝光
  • AI大模型学习指南:从Transformer到RAG与LoRA的体系化入门
  • ASP.NET 首页性能的十大做法
  • 企业级知识库搭建全流程:从数据清洗、向量化存储到RAG问答系统落地
  • 构建Apple Music级动态歌词体验:从架构设计到性能优化的完整技术指南
  • 《智人之上》第四章「错误:绝对正确是一种幻想 」读后总结
  • 实战指南:如何用OBS RTSP服务器插件构建专业级流媒体分发系统
  • Windows XP Mode for Windows 7