【发布时间】:2022-01-01 10:23:48
【问题描述】:
这是我的 SQL 语言查询:
INSERT INTO db.server(client_id, server_id, count)
SELECT id, type, COUNT(*)
FROM db.service
GROUP BY id, type
如何将这样的插入转换为 LINQ(用于实体框架)查询?
【问题讨论】:
-
LINQ 本身并不针对数据库进行操作。你在使用实体框架(LINQ to Entities)吗?
-
@Crowcoder 是的,我正在使用实体框架。
-
您可以将新实体添加到上下文中并调用 SaveChanges()
-
对于像 EF 这样的 ORM,您通常不会这样做。您对上下文跟踪的实体执行操作,然后
SaveChanges()。您可以使用上下文执行原始 sql,但这不是 LINQ,如果您不需要,也不建议这样做。 -
db.Servers.AddRange(db.Services.GroupBy(x => new { x.Id, x.Type }).Select(x => new Server() { Id = x.Key.Id, Type = x.Key.Type, Count = x.Count() }); db.SaveChanges();
标签: c# entity-framework linq