选择物品表格中的记录,其中邮政编码在一定范围内。
我有一个课程,它使用2013年美国Gazatteer邮政编码和制表区来收集邮政编码和评估邮政编码之间的距离。它基本上是一个.csv / .txt文件,我打开流并转换为POCO以处理距离。这个等式很正常;但是,根据这个邮政编码列表从Items表中选择一个Items列表是我不知道该怎么做的地方。
用户A想要搜索区域代码46324半径25英里范围内的项目。 用户A点击搜索,在后台我的班级返回25英里范围内的124个邮政编码列表。
我考虑过在where子句中使用tsql in
关键字创建动态查询,并简单地将此列表作为where参数提供。这似乎不是一种非常注重绩效的方式;但是,考虑到我目前的架构,我没有看到任何其他方式。
我还考虑过采用一种分页功能,只需要前5个邮政编码返回结果,然后是接下来的5个,依此类推。这将涉及更多的工作,但它肯定似乎是一个更好的性能选择。
有什么想法吗?
答案 0 :(得分:0)
我偶然发现了你的问题,只是偶然地寻找其他东西,而且我觉得它已经很老了,但我还是认为我会给你一个评论:
在这种情况下,我要做的是实际允许数据库进行搜索,C#进行计算。你有一个C#类来计算距离?那么为什么不保存每个邮政编码到"查询表中每个邮政编码的距离"在sql中。
这样做可以确保数据计算一次,但是让sql为您找到合适的数据。
即:
from_zip
,to_zip
,distance
字段select * from zip_lookup where zip_from = bla and distance between 0 and 100
"或类似的东西