当前位置:  开发笔记 > 数据库 > 正文

使用Contains()时达到2100参数限制(SQL Server)

如何解决《使用Contains()时达到2100参数限制(SQLServer)》经验,为你挑选了2个好方法。

我的解决方案(指南 - > Guid列表):

List tsts = new List();
for(int i = 0; i < Math.Ceiling((double)Guides.Count / 2000); i++)
{
    tsts.AddRange(dc.tstTests.Where(x => Guides.Skip(i * 2000).Take(2000).Contains(x.tstGuid)));
}
this.DataContext = tsts;


Joel.. 7

为什么不在sql中编写查询并附加你的实体?

自从我在Linq工作以来已经有一段时间了,但是这里有:

IQuery q = Session.CreateQuery(@"
         select * 
         from customerTable f
         where f.DEPT_id in (" + string.Join(",", depts.ToStringArray()) + ")");
q.AttachEntity(CUSTOMER);

当然,你需要防止注射,但这不应该太难.



1> ADM-IT..:

我的解决方案(指南 - > Guid列表):

List tsts = new List();
for(int i = 0; i < Math.Ceiling((double)Guides.Count / 2000); i++)
{
    tsts.AddRange(dc.tstTests.Where(x => Guides.Skip(i * 2000).Take(2000).Contains(x.tstGuid)));
}
this.DataContext = tsts;



2> Joel..:

为什么不在sql中编写查询并附加你的实体?

自从我在Linq工作以来已经有一段时间了,但是这里有:

IQuery q = Session.CreateQuery(@"
         select * 
         from customerTable f
         where f.DEPT_id in (" + string.Join(",", depts.ToStringArray()) + ")");
q.AttachEntity(CUSTOMER);

当然,你需要防止注射,但这不应该太难.


警告:对于整数,这是可以的,但是使用字符串:注意SQL注入.
推荐阅读
pan2502851807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有