• 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);
            }
        }//其他的类得代码就不特别列出了。

    先记录这么多吧。

  • 相关阅读:
    培训界最大的互联网企业【推荐】
    十类经典office实用技巧
    十类经典office实用技巧
    十类经典office实用技巧
    【★】电子产品降价的3大原因!
    【★】电子产品降价的3大原因!
    【★】电子产品降价的3大原因!
    ★会用这两键,你就是电脑高手了
    ★会用这两键,你就是电脑高手了
    ★会用这两键,你就是电脑高手了
  • 原文地址:https://www.cnblogs.com/rain64531264/p/fluentNhibernateoracle.html
Copyright © 2020-2023  润新知