真的有点建议,我正在构建一个MVC应用程序,它接收来自多个来源的产品的提要。这可能会达到数百万,尽管我最好建议客户将他的所有信息分成更小的块,我知道他们可能会尝试一次性地做一千次。
现在主要的问题是我不想遍历每个xml记录并进行插入。 我宁愿做的是将一个堆栈从插入中排出,然后在一个大型事务中将它们拖入数据库。非常类似于整个表的数据库SQL导入。
这可能吗?如果是这样,他们怎么称呼它?
另外,如果我确实想要一次又一次地重新插入重复的产品,当没有任何改变时,最好的做法是什么。我可以循环一个已经获取的数据集吗?
我不确定这里最好做什么,所以问一下这个人,在这样的场景中有什么共识。
感谢
答案 0 :(得分:1)
使用实体框架,您将为每个插入的记录插入一个数据库插入,不会有批量插入(如果这是您要查找的内容)。
但是要将其包含在事务中,除了将项目添加到上下文类之外,您无需执行任何操作。
http://msdn.microsoft.com/en-us/library/bb336792.aspx
当您调用SaveChanges时,这将自动进入交易。您需要做的就是确保使用单个上下文类和.Add(yourObject)到上下文。
所以只需等待调用SaveChanges,直到所有对象都被添加到上下文中。