用牵一发动全身来形容Nhibernate的映射,一点都不夸张.小小的属性的修改,决定了整个Nhibernate的执行动态.以下让我们来详细了解一下,通过回想我们在上篇文章中用到的配置文件,做一个对xml映射文件的理解补充: 实体类的映射文件: 一个实体类相应的是数据库中的一张表:类中的一个属性相应表中的一个字段:操作一个对象相应操作的的是表中的一条记录. <?xmlversion="1.0" encoding="utf-8" ?> <hiberna…
#!/usr/bin/env python # -*- coding:utf-8 -*- __Author__ = "Zhang Xuyao" from sqlalchemy import create_engine # engine = create_engine("mysql+pymysql://root:123123@localhost/attendance?charset=utf8", echo=True) engine = create_engine(&q…
NHibernate之映射文件配置说明 1. hibernate-mapping 这个元素包括以下可选的属性.schema属性,指明了这个映射所引用的表所在的schema名称.假若指定了这个属性, 表名会加上所指定的schema的名字扩展为全限定名.假若没有指定,表名就不会使用全限定名.default-cascade 指定了未明确注明cascade属性的.Net属性和集合类.Net会采取什么样的默认级联风格. auto-import属性默认让我们在查询语言中可以使用非全限定名的类名.assemb…
在NHibernate的映射中,关于继承的映射策略有3种方式 单表继承 类表继承 具体表继承 另外还有一种比较特别的多态映射 隐式多态 下面分别来阐述NHibernate继承映射的各种策略要点. 一.单表继承 单表继承的方式是,所有的字段都放在一个表中,用一个字段来区分子类.使用配置节点<subclass>配置子类. 看DEMO,首先新建一张Animal表如下: 映射文件:Animal.hbm.xml: <?xml version="1.0" encoding=&qu…
映射文件,用于告诉NHibernate数据库里的表.列于.Net程序中的类的关系.因此映射文件的配置非常重要. 一.一对一 NHibernate一对一关系的配置方式使用<one-to-one>配置节点. 当我们两个表拥有相同的主键字段,主键值相同的需要关联在一起.比较典型的一个例子是,一个对象的属性太多,常用的和不常用的分开存放.例如一个文章表,我们将文章内容字段,提取出来作为一个单独的字段,因为比较长. 下面我们来新建两张表如下: 本来, Article表还有很多字段,比如添加时间,所属栏目…
原文:DDD中的值对象如何用NHibernate进行映射 <component/>是NHibernate中一个有趣的特性,即是用来映射DDD(Data-Display-Debuger)概念形式的值类型.这是一种创建比物理数据模型具有更高粒度的对象模型的方式.  举例,   看下表中的数据:    对应的对象模型:    它们十分不同,在一个单一表中包括了所有物理数据,我们想在对象模型中调整为用两个分离的类型来映射该表.这就是<component/>的用法:  <class n…
本系列目录:ASP.NET MVC4入门到精通系列目录汇总 上一篇NHibernate学习笔记—使用 NHibernate构建一个ASP.NET MVC应用程序 使用的是xml进行orm映射,那么这一篇就来讲下代码映射. 新建一个抽象的数据化持久基类AbstractNHibernateDao.cs /// <summary> /// 数据持久化基本 /// </summary> /// <typeparam name="T">要持久化的数据类型<…
系列文章 [Nhibernate]体系结构 [NHibernate]ISessionFactory配置 [NHibernate]持久化类(Persistent Classes) [NHibernate]O/R Mapping基础 [NHibernate]集合类(Collections)映射  引言 单向关联是最常用的也是最难正确使用的.在本文中会逐个经历规范的案例,从单向映射开始,然后涉及双向的案例.我们会在所有的例子中hi用Person和Address.例子中没有包括命名空间和程序集,我们把关…
概述 有这样一个需求需要管理企业内网的信息,包括图标和链接.考虑到图标也不是很大所以就将图片直接保存在数据库中了. 但是用到Nhibernate,如何映射呢? Table 5.5. Large Object Mapping Types NHibernate Type .NET Type Database Type Remarks StringClob System.String DbType.String type="StringClob" must be specified. Ent…
摘要 NHibernate支持所有的数据库数据类型. 以SQL Server数据库为例,下表是NHibernate支持的SQL Server数据库最常见的数据类型对照表. 第一列是NHibernate映射文件内type属性值,第二列是对应的.Net的POCO类属性数据类型,第三列是数据库字段类型. NHibernate映射类型   .Net数据类型   数据库数据类型   Int16 System.Int16 DbType.Int16 Int32 System.Int32 DbType.Int3…