离开.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 初体验的更多相关文章

  1. 微软最新设计Fluent Design System初体验

    微软最新设计Fluent Design System初体验 本文图片不全!建议移步知乎专栏查看!!! https://zhuanlan.zhihu.com/p/30582886 原创 2017-11- ...

  2. EF Code First 初体验

    Code First 顾名思义就是先代码,再由代码生成数据库的开发方式. 废话不多说,直接来一发看看:在VS2010里新建一个空白解决方案,再依次添加两个类库项目:Model.DataAccess和一 ...

  3. 【翻译】Fluent NHibernate介绍和入门指南

    英文原文地址:https://github.com/jagregory/fluent-nhibernate/wiki/Getting-started 翻译原文地址:http://www.cnblogs ...

  4. FE—— Code First 初体验 01(转)

    EF Code First 初体验   Code First 顾名思义就是先代码,再由代码生成数据库的开发方式. 废话不多说,直接来一发看看:在VS2010里新建一个空白解决方案,再依次添加两个类库项 ...

  5. .NET平台开源项目速览(15)文档数据库RavenDB-介绍与初体验

    不知不觉,“.NET平台开源项目速览“系列文章已经15篇了,每一篇都非常受欢迎,可能技术水平不高,但足够入门了.虽然工作很忙,但还是会抽空把自己知道的,已经平时遇到的好的开源项目分享出来.今天就给大家 ...

  6. Xamarin+Prism开发详解四:简单Mac OS 虚拟机安装方法与Visual Studio for Mac 初体验

    Mac OS 虚拟机安装方法 最近把自己的电脑升级了一下SSD固态硬盘,总算是有容量安装Mac 虚拟机了!经过心碎的安装探索,尝试了国内外的各种安装方法,最后在youtube上找到了一个好方法. 简单 ...

  7. Spring之初体验

                                     Spring之初体验 Spring是一个轻量级的Java Web开发框架,以IoC(Inverse of Control 控制反转)和 ...

  8. Xamarin.iOS开发初体验

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKwAAAA+CAIAAAA5/WfHAAAJrklEQVR4nO2c/VdTRxrH+wfdU84pW0

  9. 【腾讯Bugly干货分享】基于 Webpack & Vue & Vue-Router 的 SPA 初体验

    本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57d13a57132ff21c38110186 导语 最近这几年的前端圈子,由于 ...

随机推荐

  1. oc-28-构造函数

    Dog.h #import <Foundation/Foundation.h> @interface Dog : NSObject { NSString *_name; int _age; ...

  2. Sublime text 2下alignment插件无效的解决办法

    在sublime text 2中安装了alignment插件,但使用快捷键‘ctrl+alt+a'无效,经过各种方法依然无效,最后找到了这个“Doesn't work at all for me (f ...

  3. 架构设计:负载均衡层设计方案(6)——Nginx + Keepalived构建高可用的负载层

    1.概述 前两遍文章中,我们一直在说后文要介绍Nginx + Keepalived的搭建方式.这篇文章开始,我们就来兑现前文的承诺,后续的两篇文章我们将介绍Nginx + Keepalived和 LV ...

  4. linux记录登录ip方法

    PS:Linux用户操作记录一般通过命令history来查看历史记录,但是如果因为某人误操作了删除了重要的数据,这种情况下history命令就不会有什么作用了.以下方法可以实现通过记录登陆IP地址和所 ...

  5. 数据结构【三】:简单优先队列PriorityQueue

    在数据结构[二]:简单阻塞队列BlockingQueue的基础上添加权限属性:priority,并控制enqueue时根据priority排序插入. 1.定义priority取值范围0~9 2.deq ...

  6. 存储过程 <3> 和函数的区别

    二.函数和存储过程的优点: 1.共同使用的代码可以只需要被编写一次,而被需要该代码的任何应用程序调用(.net,c++,java,也可以使DLL库). 2.这种几种编写.几种维护更新.大家共享的方法, ...

  7. Windows防火墙出站、入站相关知识总结

    出站默认是全部允许,只禁止相关出站规则指定的条目:入站默认是全部禁止,只允许相关入站规则指定的条目. 入站规则其实没什么好说的,直接添加规则允许某IP或端口访问,或允许某程序全部访问,就行了. 要控制 ...

  8. Flume Spooldir 源的一些问题

    Flume Spooldir 源的一些问题 来自:http://blog.xlvector.net/2014-01/flume-spooldir-source-problem/ ( 自己写的插件,数据 ...

  9. AngularJs指令(一)

    AngularJs应用现在越来越流行了,谷歌都与微软合作支持AngularJS2.0,这是要逆天了,说明AngularJs将来大势所趋.最近想跳槽,又重新拾起了AngluarJs(之前由于缺少项目应用 ...

  10. codeforces 677C C. Vanya and Label(组合数学+快速幂)

    题目链接: C. Vanya and Label time limit per test 1 second memory limit per test 256 megabytes input stan ...