NHibernate 3.2+的 Map by Code 实例
NHibernate 3.2+的 Map by Code 的文档真的很少,除了Fabio Maulo的2篇blog(顺带说李永京的翻译,没任何新的研究).
让人感慨NH的没落, 也许从没有流行过.
在没有文档的时候尝试map by code, 非常痛苦.
当然像这种 this.Property(p => p.StartDate); 没涉及关系的很简单.
实战上的东西就不一样了.
public class TourInstance: Entity
{
public virtual Tour Tour { get; set; }
public virtual IList<City> FromCity { get; set; } //出发城市
public virtual IList<City> BackCity { get; set; } //返回城市
public virtual DateTime StartDate { get; set; }
public virtual DateTime EndDate { get; set; }
public virtual int Capacity { get; set; }
}
对应的Mapping 我是花了半天时间才摸索出来, 这样的效率怎么敢用来做项目,只能学习之用.
public class TourInstanceMapping : EntityMapping<TourInstance>
{
public TourInstanceMapping()
{
this.ManyToOne(x => x.Tour, m =>
{
m.Column("TourID");
m.Cascade(Cascade.All);
m.NotNullable(true);
}); this.IdBag(x => x.FromCity, c =>
{
c.Id(i=>
{
i.Column("ID");
i.Generator(Generators.Native);
});
c.Key(k =>
{
k.Column("TourInsID");
k.ForeignKey("FK_FromCity_TourInstance");
});
},
r => r.ManyToMany(m =>
{
m.Column("CityID");
m.ForeignKey("FK_FromCity_City");
})
); this.Property(p => p.StartDate);
this.Property(p => p.EndDate);
this.Property(p => p.Capacity);
}
}
NHibernate 3.2+的 Map by Code 实例的更多相关文章
- Google Map API 应用实例说明
目录 Google Map API 1基础知识 1.1 Google 地图 API 概念 1.2 Google 地图的"Hello, World" 1.2.1 加载 Google ...
- python字典(dictionary)使用:基本函数code实例,字典的合并、排序、copy,函数中*args 和**kwargs做形参和实参
python字典dictionary几个不常用函数例子 一.字典声明 如,d={}; d= {'x':1,'b':2} d1 = dict(x=1,y=2,z=3) d2 = dict(a=3 ...
- Java中List与Map初始化的一些写法
Java的在还没有发现新写法之前时,我一直是这么初始化List跟Map: 代码如下 复制代码 //初始化List List<string> list = new ArrayList ...
- ES6 - Map
含义和基本用法 Map对象就是简单的键值对映射.其中的键和值可以使任意值.(ps : 对象的键只能是字符串 ) JavaScript 的对象(Object),本质上是键值对的集合(Hash 结构) ...
- python第六天 函数 python标准库实例大全
今天学习第一模块的最后一课课程--函数: python的第一个函数: 1 def func1(): 2 print('第一个函数') 3 return 0 4 func1() 1 同时返回多种类型时, ...
- Js基础知识7-Es6新增对象Map和set数据结构
前言 JavaScript中对象的本质是键值对的集合,ES5中的数据结构,主要是用Array和Object,但是键只能是字符串.为了弥补这种缺憾,ES6带来了一种新的数据结构Map. Map也是键值对 ...
- ES6学习笔记(10)----Set和Map数据结构
参考书<ECMAScript 6入门>http://es6.ruanyifeng.com/ Set和Map数据结构 1.Set 基本用法 Set是一种新的数据结构,它的成员都是唯一 ...
- 9.3.2 map端连接-CompositeInputFormat连接类
1.1.1 map端连接-CompositeInputFormat连接类 (1)使用CompositeInputFormat连接类需要满足三个条件: 1)两个数据集都是大的数据集,不能 ...
- Spring MVC返回Map格式JSON数据
问题描述: ajax中走error : function(e) {} 问题背景: 在测试controller层时,试过了ResponseEntity<ResponseModel>这种类型返 ...
随机推荐
- memcached学习笔记5--socke操作memcached 缓存系统
使用条件:当我们没有权限或者不能使用服务器的时候,我们需要用socket操作memcached memcached-client操作 特点: 无需开启memcache扩展 使用fsocketopen( ...
- HybridTime - Accessible Global Consistency with High Clock Uncertainty
Amazon's Dynamo [9] and Facebook's Cassandra [13], relax the consistency model,and offer only eventu ...
- 【转】Unity 解析Json字符串
http://blog.csdn.net/qq_15267341/article/details/52013190 LitJSON使用很简单,两个步骤: 1 将LitJSON.dll文件拖动到unit ...
- hibernate 数据库列别名自动映射pojo属性名
package com.pccw.business.fcm.common.hibernate; import java.lang.reflect.Field; import java.math.Big ...
- 【运维工具】logrotate 日志管理神器
服务器经常会产生各种各样的日志文件,我们需要定期清理 日志的分类 系统日志 应用日志 系统日志 例如系统的history 历史信息 crontab的运行日志 一般系统日志系统都帮我们运维好了,不 ...
- 蓝牙的SDP协议总结
1.概念 SDP协议让客户机的应用程序发现存在的服务器应用程序提供的服务以及这些服务的属性.SDP只提供发现服务的机制,不提供使用这些服务的方法.每个蓝牙设备都需要一个SDP Service, ...
- 解读ClassLoader
ClassLoader一个经常出现又让很多人望而却步的词,本文将试图以最浅显易懂的方式来讲解 ClassLoader,希望能对不了解该机制的朋友起到一点点作用. 要深入了解ClassLoader ...
- ManualResetEvent和AutoResetEvent的区别实例
ManualResetEvent和AutoResetEvent的作用可以理解为在线程执行中插入停顿点flag终止程序运行,然后通过设置flag的状态来使得程序继续运行. 两者的区别是:ManualRe ...
- 管子&小白
管夷吾已入朝,稽首谢罪,桓公亲手扶起,赐之以坐.夷吾曰:“臣乃俘戮之余,得蒙宥死,实为万幸,敢辱过礼!”桓公曰:“寡人有问于子,子必坐,然后敢请."夷吾再拜就坐. 桓公曰:“齐,千乘之国,先 ...
- Spring冲刺阶段二(1)
我们首先是根据同学们的评价来找补自己的不足之处,其中同学们反应最多的是我们的界面不够好看,但是我觉得虽然不好看但算是比较简洁.其次是没有体现内网在其中发挥的作用,这点我们还没有实现. 根据这些不足之处 ...