NHibernate / 我把项目中的Nhibernate升级成了3.2 错误了(转 http://space.cnblogs.com/group/topic/49405/)

Coordinator
Sep 26, 2011 at 7:58 AM

NHibernate / 我把项目中的Nhibernate升级成了3.2 错误了

<input id="lbThreadID" type="hidden" value="49405" />

浏览:433 2011-08-14 18:26 来自  gongzhw      :

 

 

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate" />
</configSections>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2" >
<session-factory>
<property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>
<property name="connection.connection_string">
Data Source=DAVID\SQLEXPRESS;Initial Catalog=YanDa;User ID=sa;Password=111111
</property>
<property name="show_sql">true</property>
<property name="dialect">NHibernate.Dialect.MsSql2008Dialect</property>
<!--<property name="use_outer_join">true</property>-->
<property name="command_timeout">10</property>
<property name="query.substitutions">true 1, false 0, yes 'Y', no 'N'</property>
<!--<property name="proxyfactory.factory_class">NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle</property>-->
<mapping assembly="iCenter.Repositories"/>

</session-factory>
</hibernate-configuration>
</configuration>

 

 

如题,必须把配置文件中的注释的部分砍掉 才正常,否则报错!

 

如果打开这个<property name="use_outer_join">true<!--property> 报配置错误


如果打开这个<property name="proxyfactory.factory_class">NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle<!--property> 报:NHibernate.ByteCode.Castle 找不到引用 是否我使用NuGet 获取的nhibernate3.2版本太高?我手工插入NHibernate.ByteCode.Castle 说版本太高添加失败

收藏 楼主
 
  1个月前   gongzhw      :
第二个问题 <property name="cache.provider_class">NHibernate.Cache.HashtableCacheProvider, NHibernate</property> 加入这个没事了 参考 http://home.cnblogs.com/group/topic/48365.html 做的配置
1楼 回到顶楼 
  1个月前   lxyukiss      :
1、use_outer_join
是否使用外连接抓取。已弃用,请使用max_fetch_depth。
可用值: true | false
max_fetch_depth
为单向关联(一对一, 多对一)的外连接抓取树设置最大深度。值为0表示将关闭默认的外连接抓取。
可用值:建议在0 到3之间取值。

2、设置缓存实现类(实现ICacheProvider接口的类),
以前的版本要用要引用第三方的如: Castle,Spring等。3.2版本好像本身已经集成了自己的实现类。所以可以不用引用了。且3.2的下载的包中已经没有Required_For_LazyLoading这个文件夹了。如果你要用第三方的实现,要则将第三方的引用相关DLL文件。


3.2版本中,
<!--<property name="use_outer_join">true</property>-->
<!--<property name="proxyfactory.factory_class">NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle</property>-->
这两条配置已经不需要了,应该去掉,这是和以前版本不一样的地方。

以前老版本要引用一大堆第三方的dll,现在则不需要。

以上是我自己测试过的。
2楼 回到顶楼 
  1个月前   gongzhw      :
@lxyukiss

太感谢你啦!多谢 哥们