我记得当我们使用SQL命令时,我们可以使用这样的简单代码将表数据复制到另一个表:
INSERT INTO table1 (f1, f2, f3)
SELECT f1, f2, f3
FROM table2
现在我怎么能在linq中这样做?我使用foreach但是在高范围数据中需要很长时间才能完成7到8分钟的命令。 但是这个SQL推荐它会在2到3秒内复制。
有人帮助我。谢谢
答案 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之外的所有字段。