Sql 如何使用linq将一个表复制到另一个表

Sql 如何使用linq将一个表复制到另一个表,sql,linq,Sql,Linq,我记得当我们使用SQL命令时,我们可以使用如下简单代码将一个表数据复制到另一个相同的表: INSERT INTO table1 (f1, f2, f3) SELECT f1, f2, f3 FROM table2 现在我怎么能在林克做到这一点?我使用了foreach,但在高范围数据中,执行命令需要花费很多时间,大约7-8分钟。 但使用此SQL脚本,它可以在2-3秒内复制 有人帮帮我 谢谢您未经测试,请尝试以下方法。两个实体(具有相同字段的ENT1和ENT2)。更新以

我记得当我们使用SQL命令时,我们可以使用如下简单代码将一个表数据复制到另一个相同的表:

INSERT INTO table1 (f1, f2, f3)

SELECT     f1, f2, f3

FROM         table2
现在我怎么能在林克做到这一点?我使用了foreach,但在高范围数据中,执行命令需要花费很多时间,大约7-8分钟。 但使用此SQL脚本,它可以在2-3秒内复制

有人帮帮我


谢谢您

未经测试,请尝试以下方法。两个实体(具有相同字段的ENT1和ENT2)。更新以显示Automapper的使用

Mapper.CreateMap<ENT1, ENT2>();
var query1 = dbContext.ENT1;
var query2 = dbContext.ENT2;
query2.AddRange(Mapper.Map<List<ENT1>, List<ENT2>>(query1));
dbContext.Update();
Mapper.CreateMap();
var query1=dbContext.ENT1;
var query2=dbContext.ENT2;
query2.AddRange(Mapper.Map(query1));
dbContext.Update();

如果这两个实体有主键,您可能必须将选择限制在PKs之外的所有字段。

LINQ不是一根魔杖。它基本上和你的foreach一样。那么你是说SQL是魔杖@如果你喜欢的话。你似乎期望LINQ的魔法性能有所提高。不会发生。参数1:无法从“System.Collections.Generic.List”转换为“System.Collections.Generic.IEnumerable”。您可能需要使用Automapper,它将接受列表作为参数。我将更新示例。