当前位置:编程学习 > C#/ASP.NET >>

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

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

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

注意是使用Nhibernate的数据访问框架,不能修改! Nhibernate SQLServer 传递参数过多 --------------------编程问答-------------------- select * from 业务数据库_业务表 where userIdList like '%,'+ userId  +',%' --------------------编程问答-------------------- 感谢回复,但是 改成用charindex或者like查找字符串的方法后可用,但是性能非常差。  --------------------编程问答-------------------- 将userIdList拆分若干个

然后分别

select * from 业务数据库_业务表 where userId in (userIdList1)
Union all
select * from 业务数据库_业务表 where userId in (userIdList2)
.... --------------------编程问答-------------------- 请问Nhibernate里,有使用这种Union的方法吗?? --------------------编程问答-------------------- 顶一下,有人有解决办法吗? --------------------编程问答-------------------- 顶一下,有人有解决办法吗?
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,