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


关注代码:

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
});

表定义:

ImageByte1 varbinary(MAX)允许空值?真正

ImageByte2 varbinary(MAX)允许空值?真正

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

如果我将null设置为ImageByte2则只会出现问题。以下错误:

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

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

有解决方案吗

一般承认的答案

使用最新版本已经纠正了该问题。

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





许可下: CC-BY-SA
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因