sql - 我有一个到数据库的 LINQ-to-Entities 连接 - 如何将数据插入到该数据库中?

标签 sql linq-to-entities

我想将数据插入到大小为 1GB 的数据库中。我当前正在使用 LINQ-to-Entities 查询数据库。

问题是数据库很大 - 我不想只是为了进行插入而将整个数据库拉入内存。

您推荐的将数据插入特定表的方法是什么,相当有效?

更新:

我应该澄清一下,我正在将数据插入到一个表中,该表链接到具有一对多关系的其他两个表。有没有一种方法可以让ADO框架处理主/外键关系的更新?

更新:

找到正确答案,参见How do I use LINQ-to-Entities to insert data into a specific table?

最佳答案

由于数据量较大,您可以使用存储过程。或者您可以使用数据创建一个文件,逐行读取它,然后使用 Linq 逐行插入行,这样数据就不会同时加载到内存中

为什么应该使用存储过程?让我们来看看这项技术的主要优点: 预编译执行。 SQL Server 对每个存储过程编译一次,然后重新利用执行计划。当重复调用存储过程时,这会带来巨大的性能提升。 减少了客户端/服务器流量。如果网络带宽是您环境中的一个问题,您会很高兴地了解到存储过程可以将长 SQL 查询减少到通过线路传输的单行。 代码和编程抽象的高效重用。存储过程可由多个用户和客户端程序使用。如果您有计划地使用它们,您会发现开发周期花费的时间更少。 增强的安全控制。您可以授予用户独立于基础表权限执行存储过程的权限。 在 MSSQL 中,语言是 Transact-SQL (T-SQL)。

关于sql - 我有一个到数据库的 LINQ-to-Entities 连接 - 如何将数据插入到该数据库中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4923735/

相关文章:

sql - 加入三张 table ? phpMyAdmin 中的错误

c# - 这个 EF 查询可以优化吗?

mysql - 在不同于 MySQL 的 MS SQL Server 中更新内部连接?

sql - Postgresql中子串的区别

asp.net - CRM 插件 - Linq 结果中缺少属性

sql - 尽管已对有序列建立了索引,但为什么我的 SQL Server ORDER BY 仍然很慢?

c# - 每组 LINQ 的最大值

mysql - 这两个 SQL 查询哪个更高效?

sql - 根据计算转换 SQL Server 表

sql - 在间隔桶中分配时间