gpt4 book ai didi

c# - 使用 Linq 的数据库表中的唯一字符串列表?

转载 作者:行者123 更新时间:2023-11-30 13:18:31 24 4
gpt4 key购买 nike

我有一个“Tickets”表,其结构有点像(删除了不必要的列)

int | string   | int   |ID  | Window   | Count |------------------------0   | Internet | 10    |1   | Phone    | 20    |2   | Fax      | 15    |3   | Fax      | 10    |4   | Internet | 5     |.   | .        | .     |.   | .        | .     |

我已将此表映射到“Ticket”类。所以我可以得到这样的所有记录:

var tickets = from t in db.Tickets              select t;

现在我需要获取表中唯一窗口名称的列表。对于上表,列表看起来像这样:

  • 互联网
  • 电话
  • 传真

是否可以在不获取所有记录并遍历它们的情况下创建此列表?

我使用的是 SQL Server 2008 速成版。

编辑:感谢您的回答,它解决了上述问题。只是很贪心,但有什么方法可以获得每个窗口的总计数。例如:

  • 互联网 = 15
  • 电话 = 25
  • 传真 = 20

最佳答案

怎么样:

var tickets = db.Tickets.Select(t => t.Window).Distinct();

我更喜欢只在执行多个操作时使用查询表达式,但如果您喜欢它们,则等效于:

var tickets = (from t in db.Tickets
select t.Window).Distinct();

要获得计数,您需要分组:

var tickets = from t in db.Tickets
group t by t.Window into grouped
select new { Window=grouped.Key,
Total=grouped.Sum(x => x.Count) };

foreach (var entry in tickets)
{
Console.WriteLine("{0}: {1}", entry.Window, entry.Total);
}

请注意,这应该全部在数据库端执行 - 检查 SQL 查询以检查这一点。

关于c# - 使用 Linq 的数据库表中的唯一字符串列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/887327/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com