0 0

求教使用Nhibernate+SQLServer做跨数据库查询时关于请求的参数过多,最多不超过2100个参数的解决办法!5

项目用Nhibernate + SQLServer,要使用到两个数据库,一个用户数据库,一个业务数据库,现在有一个需求是要关联查询所有用户使用某一个业务的历史记录情况,我之前的做法是,先从用户数据库中查出用户Id,作为一个列表,然后传递到查询业务数据库业务表的方法中,使用where in 用户Id列表的判断条件来查询记录,如下:
select userId from 用户数据库_用户表  ---得到userIdList
select * from 业务数据库_业务表 where userId in (userIdList)

当用户记录少的时候,这种做法没问题,但是当用户记录数多到上万时,就会报错,提示SQLServer传递的参数过多,最多不超过2100个参数。
改成用charindex或者like查找字符串的方法后可用,但是性能非常差。
不知道对这种情况,大家有没有什么解决办法?

注意是使用Nhibernate的数据访问框架,不能修改!
2013年11月04日 11:57

3个答案 按时间排序 按投票排序

0 0

看看下面的连接
建议使用Moon.Orm

2013年11月04日 13:33
0 0

http://www.cnblogs.com/humble/p/3320804.html

2013年11月04日 13:33
0 0

Java程序员,NHibernate没有使用过,但是题主的方法肯定是不行的,原因是SQL语句的长度实际上是有限制的(和数据库有关系,但是都有长度限制),一般的数据库貌似是1K以内,所以一个SQL随着数据量的增长而增长,这肯定是不行的。

有两个途径:
1. 代码量修改比较少的方法:批量查询的方式,比如每次只where userid in 1000条数据,然后程序拼接;

2. 根据数据量大大小将一个数据库的数据同步到另外一个数据库(不知道SQL Server怎么同步,但是机制肯定是有的),然后使用联合查询

仅供参考。

2013年11月04日 13:03

相关推荐

    NHibernate+sqlserver练习

    NHibernate 是一个强大的对象关系映射(ORM)框架,它允许开发者在.NET环境中使用SQL Server数据库,无需直接编写SQL语句。在这个“NHibernate+sqlserver练习”项目中,我们将会探讨如何结合NHibernate和MVVM(Model...

    使用.NET语言借助NHibernate数据引擎操作SQL Server2008数据库

    简要说明:本程序使用Visual Studio 2010开发的,NHibernate为3.3.3.4000版本,所使用的数据库为SQL Server2008(在数据库中建立名称为NHibernate的数据库,首次运行程序时需进行数据插入操作),请在这些条件下进行...

    可以运行的Nhibernate例子+SQL2000数据库

    这个压缩包“可以运行的Nhibernate例子+SQL2000数据库”显然是为了帮助初学者或开发者快速理解并实践Nhibernate的用法,同时结合SQL Server 2000作为后端数据库。 在Nhibernate中,有几个核心概念值得深入理解和...

    Asp.net Nhibernate+sql程序例子

    【Asp.net NHibernate+SQL程序例子】是一个适合初学者的教程项目,它演示了如何在ASP.NET环境中结合NHibernate框架与SQL数据库进行操作。在这个例子中,开发者将学习到如何利用NHibernate作为ORM(对象关系映射)...

    asp.net 二手车源码 三层+Nhibernate+MVC框架数据库

    3. Nhibernate:一个流行的.NET ORM框架,它自动处理对象与数据库之间的映射,减少了手动编写SQL语句的工作量,支持多种数据库系统,如MySQL、SQL Server等。 4. MVC框架:模型-视图-控制器模式,是一种将业务逻辑...

    Asp.net+NHibernate+SQL2008实例

    标题 "Asp.net+NHibernate+SQL2008实例" 涉及到的是一个基于.NET Framework的Web应用程序开发项目,使用了Asp.net作为前端框架,NHibernate作为对象关系映射(ORM)工具,以及SQL Server 2008作为后端数据库。这个...

    MVC+NHibernate+Spring.net整合

    NHibernate支持多种数据库,如MySQL、SQL Server等,它提供了强大的查询语言HQL(Hibernate Query Language)和 Criteria API,方便地进行数据检索。 **Spring.NET** Spring.NET是.NET平台上的轻量级依赖注入(DI)...

    dot NET数据库开发技术(完全手册Visual C# 2005+SQL Server 2005数据库与网络开发)

    包括8章: 第1章 操作数据库.pdf 第2章 使用数据库.pdf ...第4章 SQL Server XML的功能.pdf 第5章 XML编程.pdf 第6章 数据映射方案.pdf 第7章 NHibernate事务、并发和缓存.pdf 第8章 NHibernate高级数据映射和查询.pdf

    spring.net+nhibernate+mvc4

    标题 "spring.net+nhibernate+mvc4" 暗示了这个项目是关于使用 .NET 框架中的 Spring.NET、NHibernate 和 MVC4(ASP.NET MVC 4)技术来构建一个应用程序的实例。Spring.NET 是 .NET 平台上的轻量级依赖注入框架,它...

    asp.net 二手车源码 三层+Nhibernate+MVC框架(含数据库)

    虽然具体的数据库类型未在描述中提及,但通常在ASP.NET项目中,可能会使用SQL Server或MySQL等关系型数据库。Nhibernate会根据配置文件中的映射信息与数据库进行交互,处理数据存储和检索。 **源码分析** 在源码中...

    Visual C# 2005 + SQL Server 2005数据库与网络开发 源码

    《完全手册·Visual C# 2005+SQL Server 2005数据库与网络开发》基于微软的.NET框架和数据库SQL Server 2005服务器技术,详细全面地介绍了该框架下的C#2.0技术,以及如何基于该编程语言实现基于数据库的程序开发。...

    C#+FluentNHibernate+SQL2008 完整实现简单示例

    本示例将详细介绍如何使用C#,FluentNHibernate以及SQL Server 2008来构建一个简单的ORM应用。 FluentNHibernate是一个用于简化NHibernate配置的库,它通过一种更直观、更易读的API替代了传统的XML配置方式。在本...

    Spring+NHibernate+WCF

    2. **查询语言(HQL)**:NHibernate支持类似于SQL的HQL,以及LINQ查询,方便进行复杂的数据库查询。 3. **事务管理**:NHibernate提供了一套完善的事务处理机制,可以处理多表操作和并发控制。 **WCF** WCF是.NET ...

    c# 做成数据库生成 nhibernate映射文件程序,包括oracle 和sql server

    本文将深入探讨使用C#语言创建一个能够为Oracle和SQL Server数据库自动生成NHibernate映射文件的程序。 NHibernate是一个流行的.NET ORM框架,它允许开发人员将.NET对象模型与数据库中的表进行映射,从而简化了...

    NHibernate+Oracle NHibernate+MySql Demo

    NHibernate 是一个强大的对象关系映射(ORM)框架,它允许开发者在.NET环境中使用SQL数据库,如Oracle和MySQL,而不必直接编写SQL语句。这个"NHibernate+Oracle NHibernate+MySql Demo"是一个示例项目,展示了如何...

    NHibernate +asp.net mvc 3.0示例

    NHibernate 是一款强大的对象关系映射(ORM)框架,它允许开发者在.NET环境中使用面向对象的方式操作数据库,而无需直接编写SQL语句。ASP.NET MVC 3.0 是微软提供的一个用于构建可维护、高性能的Web应用程序的框架,...

    nhibernate+spring.net+mvc3.0项目

    标题 "nhibernate+spring.net+mvc3.0项目" 暗示这是一个使用NHibernate、Spring.NET和ASP.NET MVC 3.0框架构建的实际项目。这些技术都是开发高效、可扩展的企业级应用程序的常用工具。让我们逐一深入探讨它们。 **...

    NHibernate.JetDriver支持Access数据库类库

    NHibernate 是一个流行的开源对象关系映射(ORM)框架,用于.NET环境,它允许开发者将数据库操作抽象化,使得在处理数据库时可以使用面向对象的编程方式。JetDriver是NHibernate的一个扩展,专为与Microsoft Access...

    mvc4+spring.net+nhibernate小例子

    - **数据库配置**:在App_Data目录下的数据库文件可能是.mdf格式,这是SQL Server Express的本地数据库文件。开发者可能使用NHibernate的SessionFactory配置来连接并操作这个数据库。 - **配置文件**:Spring.NET的...

    spring.net+nhibernate+mvc+easyui源码

    源码中的WeCompanySite可能是一个实际的项目实例,它展示了如何使用Spring.NET进行服务和组件配置,如何借助NHibernate进行数据持久化,以及如何运用MVC和EasyUI构建用户界面。开发者可以通过分析这个源码,学习到...

Global site tag (gtag.js) - Google Analytics