我有一个问题,不知道如何解决它.想象一下,你有一个List<int>
大约6000个唯一id,它匹配一个表的id,在sql数据表中有大约一百万条记录.我想从我的c#程序中选择那些通过LINQ匹配那些id的记录.我不想使用,Contains()
因为它的翻译速度很慢而且参数列表变得很大.
任何其他想法如何解决这个问题?
关于我的场景的一些事情(这不是真实的,而是类似的场景):
我有一个连接到数据库的服务.例如,客户端请求一批项目,例如Person.服务接受请求,查询数据库并将数据发送回客户端.
Person =(PersonID,Prename,Lastname)
现在客户持有临时人员名单.使用其他方法,我想从服务中检索这些人的地址.所以我将一个PersonID列表添加到服务中,该列表应该返回一个引用这些人的地址列表.
我不推荐这个.作为LINQ的绝佳工具,在某些情况下,通过处理代码端来尝试智能处理数据可能对应用程序性能非常不利.
你有一个这些Id的列表,如果它们在数据库中,为什么不将整个操作作为存储过程而只返回结果,这样你就不必通过线路推送昂贵的查询,它全部在您的数据库中,因此您可以最大限度地减少流量,并可能提高响应速度.
6000个项目可能看起来不是很多,但实际上如你所说,当尝试使用大小的数据集进行选择时,这可能是一个噩梦.
归档时间: |
|
查看次数: |
1618 次 |
最近记录: |