c# - 通过objectset插入多条记录

标签 c# sql entity-framework

如果你已经有一个集合,有什么办法可以不循环地插入多条记录吗?当然,如果您在循环之外提交,则几乎没有性能优势。

我有一个上下文和 ObjectSet<Type> 。我还收藏了Type我想交换或连接或相交或你有什么表中的内容。换句话说,我不想从以下内容继续:

foreach (Type r in Collection)
{
    Context.ObjectSet.Add(r);
}
Context.SaveChanges();

最佳答案

您必须始终使用循环。 AddCollectionAddRange 等方法不会带来任何性能优势,因为这些方法通常适用于某些性能优化,其中内部集合扩展为整个范围,并且只是复制而不是复制。为每个 Add 调用扩展集合。 AddObject 的作用远不止将数据传递到某个内部集合,因此它仍然必须一一处理实体。

如果您想优化数据库插入本身的性能,您必须转向另一个解决方案,因为 EF 没有任何批量或批量数据修改。每条记录都作为单个插入在单独的往返过程中传递到数据库。

关于c# - 通过objectset插入多条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7374819/

相关文章:

c# - 如何使用 C# 检查是否以编程方式安装了 OpenOffice

c# - INotifyPropertyChanged 和自动属性

java - 从 Java 调用 SQL 包过程

c# - Lambda,从嵌套列表中获取属性

c# - 事务 Rollback() 是否有机会抛出异常?

c# - .NET 中程序集的概念是什么?

MYSQL 关系查询问题

c# - 在通过 C# 调用的动态查询中转义 '@' 符号

c# - 模拟单元测试在 AsNoTracking() 上返回 ArgumentNullException

c# - "The system cannot find the file specified"process.Start() 错误;