不允许将 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
现在我将ImageByte1
和ImageByte2
定义为null
,它会正常更新或者ImageByte1
和ImageByte2
除了null也会更新。
有什么解决办法吗?
这个问题已经用最新的版本修正了。
Nuget:https://www.nuget.org/packages/Z.EntityFramework.Plus.EF6/
遵循代码:
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
现在我将ImageByte1
和ImageByte2
定义为null
,它会正常更新或者ImageByte1
和ImageByte2
除了null也会更新。
有什么解决办法吗?
这个问题已经用最新的版本修正了。
Nuget:https://www.nuget.org/packages/Z.EntityFramework.Plus.EF6/