c# - 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 的无效列长度。
解决方案
binary(30)
, char(30)
, 表示:数据长度必须为 30。除非有特殊要求,一般我们用nchar
, varchar
, nvarchar
,varbinary
代替。