如何使用 EF 6 将大数据插入或更新到 varchar(max)
How to insert or update large data into varchar(max) using EF 6
我正在使用 EF6 和 SQL Server 2012。我有一个 table,它在 varchar(max)
列中包含文本文件。平均文件大小为几 MB,但我正在寻找也适用于更大文件的解决方案。我使用字符串数据类型添加或更新此列,但我认为这不是更新几千条记录的有效方法,其中每条记录为 4 到 5 Mb。有什么有效的方法可以在 EF(甚至 ADO.net)中插入或更新大数据类型?
对于大文件,该字段可以更改为 varbinary(max),文件可以转换为二进制格式并插入到数据库中。对于大于 1MB 的文件,文件流提供了更好的选择。尝试访问Convert file to binary in C#进行二进制转换。
我最终创建了一个使用 varchar(max) 写函数的存储过程。通过调用 SP 而不是更新 EF 对象,我能够使我的代码快 10 倍。然后这个 SP 执行类似于
的查询
update MyTable set col1.Write(@data, @oldLength, @data_length)
我正在使用 EF6 和 SQL Server 2012。我有一个 table,它在 varchar(max)
列中包含文本文件。平均文件大小为几 MB,但我正在寻找也适用于更大文件的解决方案。我使用字符串数据类型添加或更新此列,但我认为这不是更新几千条记录的有效方法,其中每条记录为 4 到 5 Mb。有什么有效的方法可以在 EF(甚至 ADO.net)中插入或更新大数据类型?
对于大文件,该字段可以更改为 varbinary(max),文件可以转换为二进制格式并插入到数据库中。对于大于 1MB 的文件,文件流提供了更好的选择。尝试访问Convert file to binary in C#进行二进制转换。
我最终创建了一个使用 varchar(max) 写函数的存储过程。通过调用 SP 而不是更新 EF 对象,我能够使我的代码快 10 倍。然后这个 SP 执行类似于
的查询update MyTable set col1.Write(@data, @oldLength, @data_length)