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

时间:2015-03-11 12:18:56

标签: sql linq

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

INSERT INTO table1 (f1, f2, f3)

SELECT     f1, f2, f3

FROM         table2

现在我怎么能在linq中这样做?我使用foreach但是在高范围数据中需要很长时间才能完成7到8分钟的命令。 但是这个SQL推荐它会在2到3秒内复制。

有人帮助我。

谢谢

1 个答案:

答案 0 :(得分:0)

未经测试但请尝试以下内容。两个实体(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();

如果两个实体具有主键,则可能必须将选择限制为除PK之外的所有字段。