字符串或二进制数据将被截断-添加新行(实体框架)

Raf*_*per 2 c# entity-framework

当我尝试添加新行时出现此错误。

HexStringToByteArray("0x546F206A65737420707573747920706C696B0D0A");
Run Code Online (Sandbox Code Playgroud)

字符串或二进制数据将被截断。\ r \ n该语句已终止。

attachement.ATF_ID = 244512;
attachement.ATF_WFDID = 160489;
attachement.ATF_ATTID = 244512;
attachement.ATF_Name = "teska14.txt";
attachement.ATF_FileType = ".txt";
attachement.ATF_Value = HexStringToByteArray("0x546F206A65737420707573747920706C696B0D0A");
attachement.ATF_FileIsOcr = 0;
attachement.ATF_CreatedBy = "test";
attachement.ATF_UpdatedBy = "test";
attachement.ATF_OrginalValueHash = HexStringToByteArray("0x4C35C01D7E10FB7F7440D39932265E7C7F09A4D17FEFB55AE9E1DDAC97AD373E");
attachement.ATF_OrginalName = "test.txt";
attachement.ATF_Version = -1;
context2.WFAttachmentFiles.AddObject(attachement);
//context.AddToWFAttachmentFiles(attachement);
//context.WFAttachmentFiles.AddObject(attachement);
context2.SaveChanges();
Run Code Online (Sandbox Code Playgroud)

HEC代码:

public static byte[] HexStringToByteArray(string hexString)
{
    if (string.IsNullOrWhiteSpace(hexString))
        throw new ArgumentNullException("hexString");

    if (hexString.Length % 2 != 0)
        throw new Exception("Invalid hex string");

    var bytes = new byte[hexString.Length / 2];
    for (int i = 2; i < bytes.Length; i++)
    {
        bytes[i] = Convert.ToByte(hexString.Substring(i * 2, 2), 16);
    }
    return bytes;
}
Run Code Online (Sandbox Code Playgroud)

Mar*_*rkP 5

通常,当您看到该错误消息时:

字符串或二进制数据将被截断。该语句已终止。

这意味着数据库列之一不足以容纳您要保存的数据。

在您的情况下,请检查数据库中ATF_OrginalValueHashATF_Value列的大小,并可能增加它们的大小