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

Dmi*_*y T 8 database sql-server-ce linq-to-sql windows-phone-7

我正在尝试将Map控件中的快照作为WritableBitmap,将其转换为字节数组并将其保存在本地数据库中.它工作正常(我可以将字节数组转换回图像),直到我将更改提交给数据库.此时它会抛出异常"字节数组截断到8000的长度".我没有找到任何关于字节数组限制的文档.有谁知道如何增加8000的限制?我的字节数组是我的模型的成员:

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

cta*_*cke 11

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

[Column(DbType="image")]
public byte[] LocationImage { ... }
Run Code Online (Sandbox Code Playgroud)