不允许将 nvarchar 数据类型隐式转换为 varbinary (max)。使用 CONVERT 函数执行此查询

The implicit conversion of the nvarchar data type into varbinary (max) is not allowed. Use the CONVERT function to perform this query

遵循代码:

byte[] image1 = ConvertTo.Bytes(Request.Files[0]);
byte[] image2 = null;

ctx
.Users
.Where(x => x.Id == 1)
.Update(x => new User()
{
    ImageByte1 = image1,
    ImageByte2 = image2
});

Table定义:

ImageByte1 varbinary(MAX) Allow nulls? true

ImageByte2 varbinary(MAX) Allow nulls? true

我在这里使用这个:http://entityframework-plus.net/

只有当我将 null 设置为 ImageByte2 时才会出现问题。跟随错误:

The implicit conversion of the nvarchar data type into varbinary (max) is not allowed. Use the CONVERT function to perform this query

现在我将ImageByte1ImageByte2定义为null,它会正常更新或者ImageByte1ImageByte2除了null也会更新。

有什么解决办法吗?

这个问题已经用最新的版本修正了。

Nuget:https://www.nuget.org/packages/Z.EntityFramework.Plus.EF6/