我正在加载对象列表,需要映射这些对象并将其存储回另一个数据库。这两个表没有相同的架构,因此需要映射。
例如:
using (var db1 = new Db1())
{
var customers = db1.CustomersDb1;
using (var db2 = new Db2())
{
foreach (var customer in customers)
{
var c = Mapper.Map<CustomerDb2>(customer);
db2.customers.Add(c);
}
db2.SaveChanges();
}
}
现在我用大约12000个条目测试了这段代码,它持续了2-3 分钟,直到我到达db2.SaveChanges()
。所以在这段时间之后我什至没有存储任何东西。
中的Customer
对象Db2
只有 14 个属性,所以我不知道它在哪里需要这么多时间。
有没有更快的方法来映射和复制两个表Entity Framework
?
编辑:
循环中需要最多的时间。所以这不是数据库的问题。automapper
如果我使用或手动映射它也没关系。