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) null을 허용합니까? 참된

ImageByte2 varbinary (MAX) null을 허용합니까? 참된

나는 이것을 여기에서 사용한다 : http://entityframework-plus.net/

ImageByte2 null을 설정하면 문제가 발생합니다. 다음 오류 :

nvarchar 데이터 형식을 varbinary (max)로 암시 적으로 변환 할 수 없습니다. 이 쿼리를 수행하려면 CONVERT 함수를 사용하십시오.

이제는 ImageByte1ImageByte2null 로 정의하고 정상적으로 업데이트하거나 null 이외의 ImageByte1ImageByte2 도 업데이트합니다.

어떤 해결책?

수락 된 답변

문제는 이미 최신 버전으로 수정되었습니다.

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





아래 라이선스: CC-BY-SA
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.