NHibernate 之 “ 值“System.Object[]”不是“”类型,不能在此泛型集合中使用。 参数名: value”

.NET Guid与Oracle数据库类型兼容方案 Guid是.NET中广泛使用的唯一标识符类型,其128位随机性保障了分布式场景下的ID不重复;在ORM框架(如NHibernate)中,Guid需映射为数据库原生类型才能高效存取。然而Oracle早期版本(如10g)缺乏对Guid的直接支持,导致参数绑定时出现InvalidCastException等类型转换异常。根本原因在于ADO.NET驱动对DbType.Guid的语义解读不一致:SQL Server驱动映射为uniqueidentifier,而Oracle驱动强制转为RAW并要求byte[]输入。解决 阅读详情

        public IList<OutStorageDataView> GetItemList(int Brand_ID, int pageNo, int pageSize, out int TotalNumber)
        {                       
            IList<OutStorageDataView> List;
            ICriteria critRecordCount = NHibernateSessionReader.CreateCriteria(typeof(OutStorageDataView));          
            //查询总数(未入数据)
            TotalNumber = Convert.ToInt32(critRecordCount.SetProjection(Projections.Count("Item_ID")).UniqueResult());
            ////获得当前页的数据
            //ICriteria crit = NHibernateSessionReader.CreateCriteria(typeof(OutStorageDataView));
            //crit.Add(Restrictions.Eq("Brand_ID", Brand_ID));
            //crit.SetFirstResult((pageNo - 1) * pageSize)
            //                   .SetMaxResults(pageSize);
            //List = crit.List<OutStorageDataView>();
            //return List;
            //------------
            IQuery crit = NHibernateSessionReader.CreateSQLQuery("SELECT [Item_ID],[Item_Title],[Item_URL],[SearchEngine_Name],[Task_KeyWord],[Brand_Name],[Item_SDate],[Item_CDate],[Admin_Name],[Brand_ID] FROM [OutStorageDataView]");
            
            //crit.Add(Restrictions.Eq("Brand_ID", Brand_ID));
            crit.SetFirstResult((pageNo - 1) * pageSize)
                               .SetMaxResults(pageSize);
            //List = (List<OutStorageDataView>)crit.List<OutStorageDataView>();
            List = crit.List<OutStorageDataView>();
            return List;
        }

        #endregion
    }


报错:

值“System.Object[]”不是“IWOMTracker.Data.Model.OutStorageDataView”类型,不能在此泛型集合中使用。

参数名: value

修正:

List = crit.List<OutStorageDataView>();
因为默认返回的数值类型是System.Object[] 不不是“IWOMTracker.Data.Model.OutStorageDataView”类型

改成:

IQuery crit = NHibernateSessionReader.CreateSQLQuery("SELECT [Item_ID],[Item_Title],[Item_URL],[SearchEngine_Name],[Task_KeyWord],[Brand_Name],[Item_SDate],[Item_CDate],[Admin_Name],[Brand_ID] FROM [OutStorageDataView]", "t", typeof(OutStorageDataView));
            //crit.Add(Restrictions.Eq("Brand_ID", Brand_ID));
            crit.SetFirstResult((pageNo - 1) * pageSize)
                               .SetMaxResults(pageSize);
            List = (List<OutStorageDataView>)(crit.List<OutStorageDataView>());
            return List;

进行强类型转换,就OK了。

NHibernate调用Oracle存储过程的生产级集成方案 Oracle存储过程是传统企业级应用的核心数据逻辑载体,其调用需遵循CallableStatement协议,涉及参数方向、SYS_REFCURSOR游标处理等底层机制。NHibernate通过OracleDataClientDriver实现对Oracle特有类型的支持,但因Oracle官方驱动未继承DbConnection基类,导致hbm2ddl.keywords校验失败、SchemaExport中断等兼容性问题。该技术方案不仅解决驱动适配与语法映射,更覆盖参数契约设计、字段显式声明、异常安全游标管理及RA 阅读详情

相关推荐

Oracle+NHibernate中Guid主键的正确实践方案

Guid(全局唯一标识符)作为分布式系统中常用的ID生成机制,在跨数据库迁移时面临存储类型不匹配、字节序不一致、索引性能下降等共性挑战。其核心原理在于将128位二进制数据以确定性方式序列化为数据库可持久化的形式,技术价值体现在避免单点ID生成器瓶颈、保障微服务间数据一致性,并支持水平扩展。典型应用场景包括金融核心系统的订单主键、日志追踪ID及多租户数据隔离。在Oracle环境中,因缺乏原生GUID类型,必须绕过NHibernate默认映射,转而采用RAW(16)字段配合自定义IUserType与Oracle

dingguayi7025的博客 393

nhibernate 值“System.Object[]”不是“”类型,不能在此泛型集合中使用。

错误:nhibernate 值“System.Object[]”不是“”类型,不能在此泛型集合中使用。 解决:添加这一句 query.SetResultTransformer(Transformers.AliasToBean(typeof(MRPT_StatisticsData))); 如下图 ...

zhao277949522的博客 970

Oracle+NHibernate中Guid主键的存储与映射最佳实践

Guid(全局唯一标识符)作为分布式系统常用主键类型,其二进制本质与字符串表示间的转换逻辑,直接影响数据库存储效率、索引性能与数据一致性。在Oracle这类不原生支持Guid的数据库中,配合NHibernate等ORM框架时,若未明确约束序列化格式(如ToString("N"))和存储类型(如VARCHAR2(32)而非默认36字符),极易引发ORA-01461绑定异常、索引失效、大小写不匹配查询失败等问题。技术价值在于统一Guid的生成、传输、存储与比较语义,兼顾性能、可读性与运维友好性;典型应用场景包括

ciyinzhi8788的博客 425

NHibernate初学者指南(21):开发中常见的错误(二)

使用一个模型读写操作 在NHibernate初学者指南(3):创建Model 中我们已经介绍了一个域模型的概念。在后面文章的例子中也都使用了这个域读写以及更新数据。只要该域的复杂性有限或者我们构建的解决方案纯粹是一个forms-over-data类型的应用,这都是有意义的。 另一方面,如果我们的域非常复杂,那么这种方法就会快速达到它的极限。 CQRS CQRS模式在处理和解决单个和复杂域问...

weixin_33806509的博客 159

Oracle中Guid主键适配方案:RAW(16)与CHAR(38)实战对比

Guid(全局唯一标识符)作为分布式系统常用主键类型,在跨数据库迁移时面临类型契约不一致的核心挑战。其原理在于.NET的DbType.Guid在SQL Server中映射为UniqueIdentifier,而在Oracle中被强制转为Raw类型,触发CoerceValue()阶段因Guid未实现IConvertible导致InvalidCastException。该问题本质是NHibernate类型系统与OracleClient驱动在值绑定环节的协同失效,技术价值在于保障主键数据流的安全、可读与可调试。典型

clugcpne10995的博客 460

NHibernate入门:从零实现数据库插入操作与实战避坑指南

对象关系映射(ORM)是一种将面向对象编程语言中的对象与关系型数据库中的表进行映射的技术,它通过封装数据库操作,让开发者能够以操作对象的方式操作数据库,从而提升开发效率并降低维护成本。其核心原理在于元数据映射和会话管理,通过配置文件和会话工厂建立对象与表之间的对应关系,并利用工作单元模式跟踪对象状态变化。在技术价值上,ORM框架如NHibernate能够自动生成SQL语句、管理事务、防止SQL注入,并支持延迟加载等高级特性,显著减少了样板代码。典型的应用场景包括企业级应用开发、复杂领域模型的数据持久化以及需

weixin_33947521的博客 344

参照“NHibernate之旅系列文章”实现的第一个NHibernate实例

初学NHibernate,参照李永京的“NHibernate之旅系列文章”,文章写得比较详细,只是里面提供的例子和讲的有些出入,并且依据的NHibernate版本是3.0.0.4000,而现在最新版本是3.3.2.4000,导致程序有所不同。以下将摘抄全部原文“NHibernate之旅(2):第一个NHibernate程序”并以红色字体进行补充。 本节内容 开始使用NHibernate1.

jjhua的专栏 1788

LINQ不是SQL替代品,而是C#数据操作的通用协议

LINQ(Language Integrated Query)是C#语言内建的声明式数据查询机制,本质是一套面向集合与转换操作的通用协议,而非专为数据库设计的语法糖。其核心原理基于标准查询操作符(Where、Select、GroupBy等)、Lambda表达式与延迟执行模型,通过IEnumerable<T>和IQueryable<T>双接口抽象,统一内存集合、数据库、XML等异构数据源的操作范式。技术价值在于提升代码可读性、类型安全性与跨数据源复用能力;典型应用场景涵盖实时风控规则编排、微服务订单聚合、配置

世范水晶 413

泛型方法无法使用Lambda表达式

使用SessionCallback泛型方法无法使用Lambda表达 @Test void contextLoads() { User user = new User("小明",20); SessionCallback<User> callback = new SessionCallback<User>() { @Override public User execute(RedisOperations redisOperations) throws Data

H1455483319的博客 1275

Agent运行时归零:会话持久化如何重构AI工程价值

Agent运行时(Runtime)正从独立技术组件演变为云基础设施层,其经济价值快速趋近于零。这一趋势源于上下文窗口的固有瓶颈与状态管理的架构缺陷,倒逼行业将‘会话’解耦为独立、持久、可查询的事件日志。该范式转变不仅解决了长程任务中的系统性失真问题,更释放出可观测性、安全治理与垂直场景落地的技术红利。当前,OpenTelemetry标准日志、沙箱凭证轮换、声明式YAML配置等能力已成为生产级Agent的核心基建。Anthropic Managed Agents与AWS AgentCore等方案的差异,本质是

weixin_30411819的博客 406

FPGA上跑100G网卡?手把手教你用Xilinx IP核配置RDMA(附避坑指南)

本文详细介绍了如何在Xilinx UltraScale+ FPGA平台上配置100G RDMA网络加速方案,涵盖CMAC和ERNIC IP核的深度配置技巧、硬件架构设计及系统集成。通过实战指南和避坑建议,帮助开发者实现超低延迟、零拷贝的数据传输,显著提升数据中心和高性能计算的网络性能。

weixin_33734785的博客 671

泛型集合

qq_37511069的博客 213

CrackerXI+脱壳实战:解决iOS应用逆向中的加密文件问题

本文详细介绍了如何使用CrackerXI+工具对iOS应用进行脱壳,解决App Store应用因FairPlay DRM加密而无法进行静态分析的难题。通过图形化界面一键操作,CrackerXI+能高效获取解密后的可执行文件,为逆向工程奠定基础。文章涵盖工具选型、实战步骤及常见问题排查,是iOS逆向入门与进阶的实用指南。

seed的博客 256

Fluent NHibernate实战:从XML映射到强类型ORM的范式升级

ORM(对象关系映射)是.NET数据访问层的核心技术,其本质是解决面向对象模型与关系型数据库之间的阻抗失配问题。传统NHibernate XML映射依赖字符串配置,缺乏编译期校验,易引发运行时异常、重构风险高、维护成本陡增;而Fluent NHibernate通过C#强类型API、Lambda表达式和方法链式调用,将映射逻辑内聚于代码之中,实现编译期检查、IDE智能感知与安全重构。该方案显著提升中大型项目的可测试性、可组合性与长期可维护性,特别适用于ASP.NET WebForms向MVC迁移、遗留NHib

SailingAptech的专栏 501

fsQCA实战:从数据校准到结果解读的完整流程(附R代码示例)

本文提供了一份完整的模糊集定性比较分析(fsQCA)实战指南,详细阐述了从数据校准、必要条件分析、真值表构建到布尔最小化与结果解读的全流程。通过R语言代码示例,帮助研究者掌握如何将理论转化为可操作的分析步骤,并产出稳健的中间解,以揭示导致结果的复杂条件组合。

d6e7f8g9h的博客 1167

SAR动目标检测三剑客:DPCA/ATI/STAP技术选型指南(含2023最新实验数据对比)

本文深入对比了SAR动目标检测三大主流技术DPCA、ATI与STAP的核心原理与性能差异。基于2023年最新实验数据,分析了它们在最小可检测速度、测速精度、计算复杂度及对通道失配敏感度等方面的优劣,并结合海洋监视与城市交通监控等典型场景,提供了具体的技术选型指南与工程落地考量。

m5n6o7的博客 292

NHibernate 基本值类型

基本值类型(Basic value types) 基本的值类型大致可以粗糙的分为三组:System.ValueType类型,System.Object类型和支持大对象的System.Object类型.和.NET类型一样,System.ValueType对应的列不能存储null值,而System.Object可以. 表4.3 System.ValueType 映射...

weixin_30509393的博客 228

KEIL-MDK代码美化神器:AStyle配置全攻略(附常用参数详解)

本文详细介绍了如何在KEIL-MDK中配置和使用AStyle代码格式化工具,包括基础参数设置、高级格式控制、团队协作方案以及KEIL深度集成技巧。通过合理的AStyle配置,开发者可以显著提升代码风格一致性,优化团队协作效率,特别适合嵌入式开发项目。

weixin_30505225的博客 146

Nhibernate1.2的问题CProxyxxxInfoCannotbeConverted to System.String

 我的Publisher系统才刚刚开始,又被一些问题给卡住了,不过在本人的机智聪明下都被一一化解(汗~~)。Now,先来看看我又遇到了什么问题。还是关于Nhibernate的,我用code Smith生成的Mapping文件和persistent Class似乎都有了问题,先来看看出问题的代码:ICriteria criteria = _session.CreateCriteria

tyh800220的专栏 715

备战2025数学建模国赛(算法29):博弈论在数学建模竞赛中的应用

博弈论为数学建模竞赛提供了强大的分析工具,尤其适用于涉及多方互动决策的问题。本文介绍了博弈论的核心模型、算法实现及竞赛应用案例,并提供了完整的Python代码实现。扩展阅读方向不完全信息博弈与贝叶斯均衡合作博弈与联盟形成机制设计与拍卖理论随机博弈与马尔可夫决策过程博弈论与机器学习的结合。

YOLO 442

从零打造高速 SerDes 系统:一步步教你生成 IBIS-AMI 模型!(含Simulink实操)

一个完整的 SerDes 系统,不止是电路设计,更是 SI 仿真、IBIS建模、系统验证三位一体的过程。用 MATLAB 的 SerDes Designer + Simulink 组合拳,不仅可以快速完成设计,还能无缝衔接工业标准流程,非常适合个人学习 & 企业验证。如果你还没用过,建议马上动手试一遍,毕竟:“光说不练假把式,跑出眼图才是王道!”🔥。

weixin_43199439的博客 1141

nhibernate字段类型映射关系(转http://blog.csdn.net/nileel/article/details/3473866)

基本值类型(Basic value types) 基本的值类型大致可以粗糙的分为三组:System.ValueType类型,System.Object类型和支持大对象的System.Object类型.和.NET类型一样,System.ValueType对应的列不能存储null值,而System.Object可以. 表4.3 System.ValueType 映射类型 NH

4387

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

NHibernate Interceptor 实战:构建多数据源协同的数据访问中枢

在现代.NET应用中,数据访问层早已超越单一数据库操作,需协调关系型数据库、Redis、Lucene、消息队列等多源系统。NHibernate Interceptor 作为深度嵌入ORM生命周期的拦截机制,提供精准的脏检查感知、事务边界内回调(如OnSave/OnFlushDirty/PostFlush)及状态可控的字段级干预能力,相比AOP、事件总线或膨胀仓储,它天然支持最终一致性保障与横切逻辑集中治理。本文聚焦Interceptor核心原理与生产级落地——涵盖Redis内容分流、Lucene索引同步、T

baochuanying9531的博客 413

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

遭遇:TargetException: 对象与目标类型不匹配。

最近在使用NHibernate时,发现有的列表无法绑定,如提示如下的错误: [TargetException: 对象与目标类型不匹配。]   System.Reflection.RuntimeMethodInfo.CheckConsistency(Object target) +7515851   System.Reflection.RuntimeMethodInfo.Invoke(Objec...

weixin_34191734的博客 1864

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

WCF中ActiveRecord作为DTO的可序列化实践

ActiveRecord模式通常被视为紧耦合数据库的领域模型,而DTO(数据传输对象)则强调跨边界的数据契约。二者在分布式系统中长期被视作互斥概念,其根本矛盾在于序列化能力与行为封装的冲突。本文围绕WCF的DataContractSerializer原理展开,解析如何通过私有字段序列化、OnSerializing钩子、状态分离(Attach/Detach)等机制,使ActiveRecord安全退化为强类型、可验证、可缓存的远程查询载体。技术价值体现在动态条件表达式树(Criteria<T>)的可序列化设计,

dingguayi7025的博客 343
上一篇: 处理asp.net出现A potentially dangerous Request.Form value was detected from the client
下一篇: 事务日志已满和'PRIMARY' 文件组已满的解决方案
ArvinStudy
博客等级 码龄15年 83粉丝 193原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值