使用Entity Framework 5保存大图

时间:2013-06-27 08:33:54

标签: entity-framework entity-framework-5

我知道不建议使用Entity Framework进行批量插入,因为它会逐个添加它们。 (Example 1example 2。)

如何附加一个在其下方有大图的对象,例如100K的物体? - 具体来说:

  • 使用EF5执行此操作有哪些(时间/内存)性能注意事项?
  • 是否有存储大型图表的最佳做法?
  • 关系数据库甚至是存储大型图表的好主意吗?

一些背景知识:

  • 使用EF5 POCO创建图表,然后将其附加到根目录并保存。图表始终是新数据,永远不会更新。我们使用的数据库是SQL Server 2012。

  • 对于大型案例(100K对象),实际创建过程可能需要几十秒,因此如果附加/保存过程占用了10%的时间,则不会对整个时间产生重大影响性能

1 个答案:

答案 0 :(得分:4)

由于某些原因没有人回答,即使在EF专家中也很常见,我也会试着问。

最近,我已经处理了具有大量循环引用和实体之间关系数量的复杂模型。大量的数据,是的,就像你或更大的数据一样。我尝试了很多东西,没有一个对我来说很方便,所以我最终使用了Fastest Way of Inserting in Entity Framework。它在一年前给了我很多帮助,你没有在你的问题帖子中提到它。


但是如果你没有实体之间有很多复杂的关系并且只有一次插入大量的全新数据,那么你已经mentioned的最快方法就是SqlBulkCopy,因为它在这种情况下,这是非常快速和简单的 例如,使用CodeFirst方法,您可以首先创建数据库结构,然后只需插入数据。

希望它有所帮助! 不用猜测在你的情况下使用NoSQL存储是否会快速或有意义,因为我从未使用过这些解决方案。 可能有经验的同事会加一些关于它的。