【发布时间】:2009-05-20 11:07:31
【问题描述】:
我有一个“Tickets”表,其结构有些类似(删除了不必要的列)
整数 |字符串 |整数 | 身份证 |窗口 |计数 | ---------------------- 0 |互联网 | 10 | 1 |电话 | 20 | 2 |传真 | 15 | 3 |传真 | 10 | 4 |互联网 | 5 | . | . | . | . | . | . |我已将此表映射到“票证”类。所以我可以得到这样的所有记录:
var ticket = 来自 db.Tickets 中的 t 选择 t;现在我需要获取表中唯一窗口名称的列表。对于上表,列表如下所示:
- 互联网
- 电话
- 传真
是否可以在不获取所有记录并对其进行迭代的情况下创建此列表?
我使用的是 SQL Server 2008 速成版。
编辑: 感谢您的答案,它解决了上述问题。只是贪婪,但有没有办法也获得每个窗口的总数。例如:
- 互联网 = 15
- 电话 = 25
- 传真 = 20
【问题讨论】:
-
如果没有更多的数据库方面的魔法(查找表、触发器等) - 数据库将需要获取整个列表才能在它们之间应用不同的。下面的答案是正确的,只是注意数据库仍然会扫描整个表/索引。
-
数据库会,但 .NET 代码不会获取所有记录并在本地对其进行迭代,这正是我怀疑 Hemant 担心的问题。
标签: c# sql-server linq