fluent nhibernate 初体验
离开.net框架两年时间,发展的很快呀。原先自我感觉良好到以为只差一个MVP的考核什么的,现在觉得真的差好远了。
呵呵,废话就不多说了。这次花了两天时间才拿下fluent nhibernate的first project。不过,还没有吃透。先记录一下理解了的部分吧。
第一个任务,将数据库改为oracle而非官网上提供的sqllite。工程中需要导入的dll有:

同时有个灰常重要的事情,就是要将Oracle.DataAccess设定为复制本地:

否则就会出现找不到驱动的错误提示。
接下来,是跟着官网的例子,设计一下数据表。在java里面hibernate可以帮忙建表的,我不能说nhibernate不可以,因为可能是我不知道怎么弄。
再有就是配置fluentNhibernate连oracle啦。
先在web.config里面找到connectionStrings节点,并配置相关的连接串。
<connectionStrings>
<add connectionString="Data Source=rain;User Id=zyu;Password=zyu;" name="rain"/>
</connectionStrings>
需要离题补充说明的是,在net35框架中configuration是被否决的,而推荐使用的ConfigurationManager在新建工程中又木有提供,需要俺们手动添加System.Configuration引用(.net也有不靠谱的地儿)。
接着就是实例化ISessionFactory啦。
private static ISessionFactory CreateSessionFactory()
{
String conn = ConfigurationManager.ConnectionStrings["rain"].ConnectionString;//不多说了,大家都知道为啥这么干。
FluentConfiguration conf = Fluently.Configure().Database(OracleConfiguration.Oracle10.ShowSql().ConnectionString(c => c.Is(conn))).Mappings(
x => x.FluentMappings.AddFromAssembly(Assembly.GetExecutingAssembly()));
return conf.BuildSessionFactory();
}
另外需要特别记录的是在实现oracle版本的first project时,与官网例子不同地方是:
public class EmployeeMap:ClassMap<Employee>
{
public EmployeeMap()
{
Table("Employee");//所有的Map类,都需要声明对应的表名称,否则人家会给你加上双引号,让你在saveorupdate的时候,找不到对应的表。
Id(x => x.Id).Not.Nullable().GeneratedBy.Native(
builder => builder.AddParam("sequence", "seq_emplyee")); ;//可以使用自己分别定义的序列对象,但是好像都要自己先在plsql中新建。
Map(x => x.LastName);
Map(x => x.FirstName);
References(x => x.Store);
}
}//其他的类得代码就不特别列出了。
先记录这么多吧。
fluent nhibernate 初体验的更多相关文章
- 微软最新设计Fluent Design System初体验
微软最新设计Fluent Design System初体验 本文图片不全!建议移步知乎专栏查看!!! https://zhuanlan.zhihu.com/p/30582886 原创 2017-11- ...
- EF Code First 初体验
Code First 顾名思义就是先代码,再由代码生成数据库的开发方式. 废话不多说,直接来一发看看:在VS2010里新建一个空白解决方案,再依次添加两个类库项目:Model.DataAccess和一 ...
- 【翻译】Fluent NHibernate介绍和入门指南
英文原文地址:https://github.com/jagregory/fluent-nhibernate/wiki/Getting-started 翻译原文地址:http://www.cnblogs ...
- FE—— Code First 初体验 01(转)
EF Code First 初体验 Code First 顾名思义就是先代码,再由代码生成数据库的开发方式. 废话不多说,直接来一发看看:在VS2010里新建一个空白解决方案,再依次添加两个类库项 ...
- .NET平台开源项目速览(15)文档数据库RavenDB-介绍与初体验
不知不觉,“.NET平台开源项目速览“系列文章已经15篇了,每一篇都非常受欢迎,可能技术水平不高,但足够入门了.虽然工作很忙,但还是会抽空把自己知道的,已经平时遇到的好的开源项目分享出来.今天就给大家 ...
- Xamarin+Prism开发详解四:简单Mac OS 虚拟机安装方法与Visual Studio for Mac 初体验
Mac OS 虚拟机安装方法 最近把自己的电脑升级了一下SSD固态硬盘,总算是有容量安装Mac 虚拟机了!经过心碎的安装探索,尝试了国内外的各种安装方法,最后在youtube上找到了一个好方法. 简单 ...
- Spring之初体验
Spring之初体验 Spring是一个轻量级的Java Web开发框架,以IoC(Inverse of Control 控制反转)和 ...
- Xamarin.iOS开发初体验
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKwAAAA+CAIAAAA5/WfHAAAJrklEQVR4nO2c/VdTRxrH+wfdU84pW0
- 【腾讯Bugly干货分享】基于 Webpack & Vue & Vue-Router 的 SPA 初体验
本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57d13a57132ff21c38110186 导语 最近这几年的前端圈子,由于 ...
随机推荐
- Mysql子查询IN中使用LIMIT
学习下Mysql子查询IN中使用LIMIT的方法. 这两天项目里出了一个问题,mysql LIMIT使用后报错. 需求是这样的,我有3张表,infor信息表,mconfig物料配置表,maaply物料 ...
- Linux 下五个顶级的开源命令行 Shell
这个世界上有两种 Linux 用户:敢于冒险的和态度谨慎的. 其中一类用户总是本能的去尝试任何能够戳中其痛点的新选择.他们尝试过不计其数的窗口管理器.系统发行版和几乎所有能找到的桌面插件. 另一类用户 ...
- 两种方式连接mysql
一种方式:运行命令符后,mysql -u root -p(如果不成功,说明环境变量没配,命令行到 mysql的bin目录下,然后运行mysql -u root -p 应该成功了) 另外一种方式,直接有 ...
- solr安全-tomcat
1.1. tomcat部署1 参考文档:solr安全机制 1.1.1. 加上安全机制的必要性 在前面有提到, Solr 本身是不加安全机制的, 所有的查詢.admin.update 這些指令都可以經由 ...
- Cache的原理、设计及实现
Cache的原理.设计及实现 前言 虽然CPU主频的提升会带动系统性能的改善,但系统性能的提高不仅仅取决于CPU,还与系统架构.指令结构.信息在各个部件之间的传送速度及存储部件的存取速度等因素有关,特 ...
- [MySQL] 数据统计 —— 按周,按月,按日分组统计数据
知识关键词:DATE_FORMAT select DATE_FORMAT(create_time,'%Y%u') weeks,count(caseid) count from tc_case grou ...
- Java SortedSet接口
该SortedSet的接口扩展集Set并声明了一组按升序排序的行为.除了通过集定义的那些方法中,SortedSet接口声明总结于下表的方法: 有几种方法没有任何条目包含在调用Set的时候抛出一个NoS ...
- 【Mood-3】心声
每天醒来,我都会想明白一件事情,时间是不会停下来的,如果打算活下去的话,那么我们会有25岁,会有30岁,更会有40岁,为了不让时间风干我的理想,未来只剩下抱怨,那么为明天伏笔,今天只有努力.耸耸背上行 ...
- Kinect For Windows V2开发日志七:照片合成与背景消除
上一篇里讲到了Kinect可以从环境中区分出人体来.因此可以利用这个功能,来把摄像头前的人合成进照片里,和利用Photoshop不同的是,这样合成进去的人是动态且实时的. 简单的思路 BodyInde ...
- # 基于Gitolite搭建Git Server - 支持SSH&HTTP
Git, 一个分布式的版本管理工具,我认为其革命性的点:在于改变了用户协作的方式,使得协作更简单. 下面讲述 使用一个开源软件 Gitolite搭建一个Git Sever, 并给了一个推荐的团队协助方 ...