zoukankan      html  css  js  c++  java
  • Castle ActiveRcord 升级及数据库迁移

    Castle ActiveRecord 已经发布了最新的2.1版本,同时也支持了更多的数据库和修正了很多的Bug,目前项目里使用的却还是最早的1.0版本,在数据库迁移时遇到了问题,比如从MSSqlServer 迁移到SqLite 时,1.0版本就不支持,让我好不痛苦。因此,下载了2.1版本,测试,却得到很多莫名其妙的问题,为移植工作增加了不少的难度,此过程曾一度怀疑选择AR是否是一个正确的选择,经过了一段失败的尝试,终于有了结果。记录如下:

    1、配置的改变

     原配置:

    代码
                    properties.Add("hibernate.proxyfactory.factory_class""NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle");
                    properties.Add(
    "hibernate.connection.driver_class""NHibernate.Driver.SqlClientDriver");
                    properties.Add(
    "hibernate.dialect""NHibernate.Dialect.MsSql2000Dialect");
                    properties.Add(
    "hibernate.connection.provider""NHibernate.Connection.DriverConnectionProvider");
                    properties.Add(
    "hibernate.connection.connection_string""Data Source=.;Initial Catalog=DataBaseName;Integrated Security=SSPI");

    新的配置:

    代码
    properties.Add("proxyfactory.factory_class""NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle");
                    properties.Add(
    "connection.driver_class""NHibernate.Driver.SqlClientDriver");
                    properties.Add(
    "dialect""NHibernate.Dialect.MsSql2005Dialect");
                    properties.Add(
    "connection.provider""NHibernate.Connection.DriverConnectionProvider");
                    properties.Add(
    "connection.connection_string""Data Source=.;Initial Catalog=DataBaseName;Integrated Security=SSPI");

    新的配置方法的改变:1是取消了“hibernate”的前缀,2是增加了“proxyfactory”的设置。 

     2.如果是从SqlServer 迁移到 PostgreSQL时,可能遇到:不支持自动增长ID列的异常,原因如下:

    PostgreSQL有好多版本,不同版本要使用不的 “方言”,PostgreSQL方言有以下几种:

    PostgreSQLDialect 

    PostgreSQL81Dialect 

    PostgreSQL82Dialect 

    我使用的数据库是8.4的,在 PostgreSQL82Dialect 一切OK。

    另外,Castle AR在nHibernate基础上支持根据领域模型创建数据表的工作方式给我的工作带来便利,但目前还不支持增量更新,一想到这里就有点怀念XPO,希望nHibernate小组继续努力,让我等也能乘势而上。

  • 相关阅读:
    vue项目,百度地图api高亮选取区域,高亮某个地区,行政区域等
    vue 项目, 通知子组件更新,父组件中每次点击按钮重新加载子组件,(重新生成dom 元素)
    洛谷 P1003 铺地毯
    Codeforces Round #582 (Div. 3)
    安科 OJ 1190 连接电脑 (并查集)
    2018年牛客多校寒假 第四场 F (call to your teacher) (图的连通性)
    牛客小白月赛16 A 小石的签到题 ( 博弈)
    牛客小白月赛16 E 小雨的矩阵 ( 暴搜)
    安科 OJ 1054 排队买票 (递归,排列组合)
    牛客小白月赛15 C 表单 ( map 使用)
  • 原文地址:https://www.cnblogs.com/yyj/p/1704047.html
Copyright © 2011-2022 走看看