本地DB抛出字节数组截断到长度为8000的异常



我试图从地图控件作为WritableBitmap的快照,将其转换为字节数组并将其保存在本地DB中。它工作得很好(我可以将字节数组转换回图像),直到我将更改提交给DB。在这一点上,它抛出一个异常"字节数组截断到8000的长度"。我没有找到任何关于字节数组限制的文档。有人知道如何提高8000的极限吗?我的字节数组是模型的成员:

private byte[] _locationImage;
[Column]
public byte[] LocationImage
{
   get { return _locationImage; }
   set
   {
      if (_locationImage != value)
      {
         NotifyPropertyChanging("LocationImage");
         _locationImage = value;
         NotifyPropertyChanged("LocationImage");
      }
   }
}

如果您查看SQL Compact文档,您将看到二进制或varbinary字段最多可以有8000字节,因此这告诉我byte[]列被映射到varbinary。要让它存储比这更大的数据,您需要让引擎使用image字段类型。这可能就像更新Column属性一样简单,像这样(未经测试):

[Column(DbType="image")]
public byte[] LocationImage { ... }

最新更新