首页 > 解决方案 > EntityFramework.Utilities UpdateAll 带有一个字节数组 (binary(30)) 列

问题描述

我正在使用 EF Utilities 对数据进行批量更新,而无需从数据库中检索。当涉及二进制(30)(在我的情况下)的列时发生以下错误。我的印象是任何具有非整数数据类型的列都会导致错误。(我用 DateTime 列进行了更新,没有问题。)

有人可以帮我解决这个问题吗?

var newByteArray = new byte[] {10,20,....};
var datasToUpdate = oldDatasToUpdate.Select( i => new Data { Id = i.Id, MyByteArray = newByteArray });
EFBatchOperations.For(entities, entities.Datas).UpdateAll(datasToUpdate, x => x.ColumnsToUpdate(d => d.MyByteArray));

从 bcp 客户端接收到 colid1 的无效列长度。

标签: c#.netentity-frameworkentity-framework-6

解决方案


binary(30), char(30), 表示:数据长度必须为 30。除非有特殊要求,一般我们用nchar, varchar, nvarchar,varbinary代替。


推荐阅读