当前位置: 首页 > 编程日记 > 正文

添加Net4CollectionTypeFactory的原因

.NET4.0已经实现了该功能

http://jahav.com/blog/nhibernate-using-net-4-iset/

NHibernate using .NET 4 ISet

NHibernate 4.0 (released in 2014-08-17) has brought us support for .NET 4 ISet<> collections, thus freeing us from the tyranny of the Iesi package. But long before that, there was a way to use .NET 4 ISet in you NHibernate 3 projects:

NHibernate.SetForNet4

SetForNet4 is a NuGet package you can install into your application. Once you install it, there will be a new file with a implementation of a ICollectionTypeFactory in your project that will support System.Collections.Generic.ISet<> instead of Iesi.Collections.Generic.ISet<>. Other than that, it is basically a copy of the original DefaultCollectionTypeFactory.

All you need to do after installation is to set the configuration property “collectiontype.factory_class” to the assembly qualified name of the created factory, make sure the dll with the created collection factory can be loaded (if you have it in separate project) and all will be peachy.

I had slight trouble with configuration, I have configuration spread over the XML and the code and the comment at the top said to add line to my configuration:

//add to your configuration: 
//configuration.Properties[Environment.CollectionTypeFactoryClass] 
//        = typeof(Net4CollectionTypeFactory).AssemblyQualifiedName

Since it was integral part of the configuration (not the db dialect or something), I put it to the code

var configuration = new Configuration().Configure(); 
configuration.Properties[Environment.CollectionTypeFactoryClass] 
     = typeof(Net4CollectionTypeFactory).AssemblyQualifiedName; 

… and it didn’t work. I had to set the factory before I made configured from XML.

var configuration = new Configuration() 
    .SetProperty(Environment.CollectionTypeFactoryClass, typeof(Net4CollectionTypeFactory).AssemblyQualifiedName) 
    .Configure()

I am not exactly sure why, but I think it is because I also have assemblies with *hbm.xml mapping files specified in the XML using <mapping assembly="EntityAssembly" /> tags.

The configuration code have set the collection factory of the bytecode provider before the mapped assemblies were processed.

Downside

It should be noted that using SetForNet4 package, you can’t use both, the Iesi and the .NET4 collections at the same time, thus you need to replace the Iesi in the whole application. Also, we have NH 4.0 now, so doing this is kind of pointless, but I did it before 4.0 and I don’t have time to upgrade to 4.0 and check that my app still works as advertised.

相关文章:

LTSM 实现多元素时序数据植物健康预测

作者 | 李秋键 出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09; 引言&#xff1a; 近些年来&#xff0c;“预测”一词在各个领域被频繁提及&#xff0c;所谓预测&#xff0c;实际上就是根据历史规律&#xff0c;推测未来结果。在科学技术发展有限的过去&#xff0…

如何扩大以太坊的规模:分片简介(How to Scale Ethereum: Sharding Explained)

2019独角兽企业重金招聘Python工程师标准>>> 分片是提高区块链效率的一个主要流派。下面简单通俗的解释一下分片算法。 以太猫(Cryptokitties)堵塞了以太坊网络好几天&#xff0c;以太坊--世界上最大的&#xff0c;公开的区块链目前是无法扩容的&#xff0c;也众所周…

Xdebug的安装-(无错可执行版)

xdebug是一个开源的php调试器&#xff0c;以php模块的形式加载并被使用。可以用来跟踪&#xff0c;调试和分析PHP程序的运行状况. 这里以PHP5.2.13为例, 1.下载php_xdebug-2.1.0-5.2.dll文件, http://www.xdebug.org/download.php 选择&#xff1a;PHP 5.2 VC6 TS (32 bit) 选择…

云游戏、VR、AI,云计算给元宇宙提供了哪些想象力?

2021 最火的新概念&#xff0c;莫过于元宇宙。2021 年 10 月 29 日&#xff0c;Facebook 宣布改名 Meta&#xff1b;2021 年 11 月 1 日&#xff0c;“元宇宙第一股” Roblox 经过短暂调整&#xff0c;宣布重新上线。接下来关于元宇宙的线下 / 线上讨论如火如荼&#xff0c;…

sys.check_constraints

每个用作 CHECK 约束&#xff08;sys.objects.type C&#xff09;的对象都在表中占一行。 SELECT name FROM sys.check_constraints-- equal to SELECT o.name FROM sys.sysobjects oJOIN sys.sysconstraints s ON o.parent_obj s.id WHERE o.xtype C GROUP BY o.…

什么是Bootstrap Aggregating

简介 Bootstrap Aggregating也叫作bagging&#xff0c;是一种机器学习领域用来做模型合并的一种算法。这种算法可以提高统计分类器和回归器的稳定性和准确度。同时也可以帮助模型避免过拟合。历史Bootstrap Aggregating最早在1994年由Leo Breiman提出&#xff0c;当时用来通过随…

柯南君:看大数据时代下的IT架构(5)消息队列之RabbitMQ--案例(Work Queues起航)...

二、Work Queues&#xff08;using the Java Client) 走起 在第上一个教程中我们写程序从一个命名队列发送和接收消息。在这一次我们将创建一个工作队列,将用于分发耗时的任务在多个工作者&#xff08;worker&#xff09;之间。 背后的主要思想工作队列(又名:任务队列)是为了避…

图像分析用 OpenCV 与 Skimage,哪一个更好?

作者 | 小白来源 | 小白学视觉这两种算法在它们可以检测到的和不能检测到的方面都有其起伏。OpenCV 是用 C 在后端进行编程的&#xff0c;并作为一个机器学习包&#xff0c;来分析 Python 中的图像模式。Skimage 也称为 Scikit-Image &#xff0c;是一个机器学习软件包&#xf…

NetBeans配置Xdebug

这篇文章已经更新&#xff0c;看 Windows环境配置xdebug调试PHP Windows环境 或者 NetBeans配置Xdebug 远程调试PHP Linux环境nebeans配置xdebug可以方便我们逐步的查看程序的运行情况对我们调试程序是非常有利的下面我就来介绍下配置的过程。先要安装xdebug&#xff0c;可以参…

[译] Don’t call me, I’ll call you:使用 Redux-Saga 管理 React 应用中的异步 action (上)...

原文地址&#xff1a;Don’t call me, I’ll call you: Side effects management with Redux-Saga (Part 1)原文作者&#xff1a;David Dvora译文出自&#xff1a;掘金翻译计划本文永久链接&#xff1a;github.com/xitu/gold-m…译者&#xff1a;jonjia校对者&#xff1a;smile…

CentOS下安装NetBeans集成开发环境

下载NetBeans以netbeans-7.0beta2-ml-javaee-linux.sh为例#sh netbeans-7.0beta2-ml-javaee-linux.sh之后进入安装界面&#xff08;接下来和windows下几乎一样不在举例&#xff09; 前提是要安装了Java 主要不要在本地远程用SecureCRT输入命令啊&#xff0c;要在Linux下用终端输…

我的Android进阶之旅------Android嵌入图像InsetDrawable的用法

面试题&#xff1a;为一个充满整个屏幕的LinearLayout布局指定背景图&#xff0c;是否可以让背景图不充满屏幕&#xff1f;请用代码描述实现过程。 解决此题&#xff0c;可以使用嵌入(Inset)图像资源来指定图像&#xff0c;然后像使用普通图像资源一样使用嵌入图像资源。 语法如…

沉痛悼念游戏开发大神毛星云

惟愿所有的“爆料”都是造谣&#xff0c;惟愿我们能够一起去创造并让大家都能玩到蕴藏着中国上下五千年本土文化的优质游戏大作&#xff0c;惟愿我们能等到你的好消息......让人难过的是&#xff0c;据银柿财经报道&#xff0c;针对近日“网传腾讯天美员工离世”的消息&#xf…

April Fools Contest 2018

这个比赛不正经&#xff0c;但是我可以一本正经的写代码啊 A. Quirky Quantifierstime limit per test2 secondsmemory limit per test64 megabytesinputstandard inputoutputstandard outputInputThe input contains a single integer a (10 ≤ a ≤ 999). OutputOutput 0…

如何查找僵尸进程并Kill之,杀不掉的要查看父进程并杀之

用ps和grep命令寻找僵尸进程#ps -A -ostat,ppid,pid,cmd | grep -e ^[Zz]命令注解&#xff1a;-A 参数列出所有进程-o 自定义输出字段 我们设定显示字段为 stat&#xff08;状态&#xff09;, ppid&#xff08;进程父id&#xff09;, pid(进程id)&#xff0c;cmd&#xff08;命…

PHP计划任务:如何使用Linux的Crontab执行PHP脚本(转)

我们的PHP程序有时候需要定时执行&#xff0c;我们可以使用ignore_user_abort函数或是在页面放置js让用户帮我们实现。但这两种方法都不太可靠&#xff0c;不稳定。我们可以借助Linux的Crontab工具来稳定可靠地触发PHP执行任务。下面介绍Crontab的两种方法。一、在Crontab中使用…

OpenAI 开放 GPT-3 微调功能,让开发者笑开了花

出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09; 近日&#xff0c;OpenAI宣布&#xff0c;允许用户创建自定义版的 GPT-3。 OpenAI 表示&#xff0c;开发人员可以使用微调来创建针对其应用程序和服务中的特定内容量身定制的 GPT-3 模型&#xff0c;从而在任务和工作…

PHP----------php封装的一些简单实用的方法汇总

1、xml转换成array&#xff0c;格式不对的xml则返回false function xml_parser($str){ $xml_parser xml_parser_create(); if(!xml_parse($xml_parser,$str,true)){ xml_parser_free($xml_parser); return false; } else { …

PHP函数--var_dump

var_dump(PHP 3 > 3.0.5, PHP 4, PHP 5)var_dump -- 打印变量的相关信息描述void var_dump ( mixed expression [, mixed expression [, ...]] )此函数显示关于一个或多个表达式的结构信息&#xff0c;包括表达式的类型与值。数组将递归展开值&#xff0c;通过缩进显示其结构…

Mozilla公布WebVR API标准草案

随着信息技术的迅速发展&#xff0c;虚拟现实&#xff08;Virtual Reality&#xff0c;VR&#xff09;技术在近些年不断完善&#xff0c;其应用范围也变得十分广泛。为了搭建逼真的虚拟场景&#xff0c;VR技术一般都需要用到大量精美的图像和复杂的动作。因此&#xff0c;大部分…

不到 100 行 Python 代码教你做出精美炫酷的可视化大屏

作者 |俊欣来源 |关于数据分析与可视化“碳达峰、碳中和”是2021年政府在不断强调与非常重视的事儿&#xff0c;那什么是“碳达峰”、什么又是“碳中和”呢&#xff1f;这里小编来为大家科普一下&#xff0c;所谓的“碳达峰”指的是在某一时间点&#xff0c;二氧化碳的排放不再…

JavaScript实现冒泡排序

说明 对数组进行 冒泡排序 算是比较简单的&#xff0c;冒泡排序也是容易理解的一种排序算法了&#xff0c;在面试的时候&#xff0c;很可能就会问到。 实现原理 数组中有 n 个数&#xff0c;比较每相邻两个数&#xff0c;如果前者大于后者&#xff0c;就把两个数交换位置&#…

PHP--isset()和unset()函数的用法

isset(PHP 3, PHP 4, PHP 5 )isset -- 检测变量是否设置描述bool isset ( mixed var [, mixed var [, ...]])如果 var 存在则返回 TRUE&#xff0c;否则返回 FALSE。 如果已经使用 unset() 释放了一个变量之后&#xff0c;它将不再是 isset()。若使用 isset() 测试一个被设置成…

有关任意多条曲线的拟合度算法

为什么80%的码农都做不了架构师&#xff1f;>>> 在股市中&#xff0c;经常会遇到趋势的预判。所谓趋势&#xff0c;即相对而言的规律化的模式识别形态。形象来讲&#xff0c;就是个股的一段时间内的曲线分布状况。 那么&#xff0c;问题来了。 我们虽然可以在少量的…

从深度学习到深度森林方法(Python)

作者 |泳鱼来源 |算法进阶一、深度森林的介绍 目前深度神经网络&#xff08;DNN&#xff09;做得好的几乎都是涉及图像视频&#xff08;CV&#xff09;、自然语言处理&#xff08;NLP&#xff09;等的任务&#xff0c;都是典型的数值建模任务&#xff08;在表格数据tabular dat…

LHC大神问的矩阵转置问题

数学中线性代数中提到的矩阵转置&#xff0c;其实在我们的业务场景中也有需要的地方&#xff0c;比如LHC大神问到的这个问题 那么如何进行行列转换呢&#xff1f; 代码如下&#xff1a; <?php$arrayarray(部门1>array(费用1>100,费用2>200,费用3>300),部门2>…

不同机器互相调用WebService或者HTTP一定要telnet 测试

ping的通不一定就telnet的通 一定要#telnet 目标机器IP 目标机器端口如果一直是 Trying 目标IP那么不通如果是 Trying 目标IP Connection to 目标IP 说明通的

亮相百度WAVE SUMMIT+2021,Intel OpenVINO带来新气象

北京时间12月12日&#xff0c;百度WAVE SUMMIT2021深度学习开发者峰会在上海举办。这场属于AI的科技盛会之上&#xff0c;英特尔OpenVINO联手百度PaddlePaddle为开发者带来了一系列的技术内容&#xff0c;为开源生态构建持续合作&#xff0c;为产业进步提供新的动力。 OpenVIN…

精品德国软件 UltraShredder 文件粉碎机

出自德国的文件粉碎机&#xff0c;整合了回收站的相关操作&#xff0c;特点是兼容性好&#xff0c;支持9X以上的Win全系列&#xff08;不包括64位系统哦&#xff09;。该软件绿色免费&#xff0c;建议收藏于U盘^_^ 它和偶之前汉化的加密软件Omziff一样&#xff0c;来自XTort&am…

JavaEE 银联支付之手机控件支付-消费类交易

0. workflow app端request->后台封装参数->后台进行签名->请求银联平台->解析响应->响应需求信息 复制代码1. acp_sdk.properties ##############SDK配置文件&#xff08;证书方式签名&#xff09;################ # 说明&#xff1a; # 1. 使用时请删除后缀的…