如果你已经有一个集合,有什么办法可以不循环地插入多条记录吗?当然,如果您在循环之外提交,则几乎没有性能优势。
我有一个上下文和 ObjectSet<Type>
。我还收藏了Type
我想交换或连接或相交或你有什么表中的内容。换句话说,我不想从以下内容继续:
foreach (Type r in Collection)
{
Context.ObjectSet.Add(r);
}
Context.SaveChanges();
最佳答案
您必须始终使用循环。 AddCollection
或 AddRange
等方法不会带来任何性能优势,因为这些方法通常适用于某些性能优化,其中内部集合扩展为整个范围,并且只是复制而不是复制。为每个 Add
调用扩展集合。 AddObject
的作用远不止将数据传递到某个内部集合,因此它仍然必须一一处理实体。
如果您想优化数据库插入本身的性能,您必须转向另一个解决方案,因为 EF 没有任何批量或批量数据修改。每条记录都作为单个插入在单独的往返过程中传递到数据库。
关于c# - 通过objectset插入多条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7374819/