快速映射和插入表

时间:2013-11-13 11:19:06

标签: c# entity-framework automapper

我正在加载一个对象列表,需要映射这些对象并将其存储回另一个数据库。这两个表没有相同的模式,因此需要映射 例如:

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或者手动映射它也无所谓。

1 个答案:

答案 0 :(得分:0)

不要使用EF。只使用一个SQL语句。

INSERT INTO Db1.Customers (ID, Value1, Value2)
SELECT NEWID(), Value1, Value2 FROM Db2.Customers

GO