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

时间:2011-12-08 13:13:29

标签: database windows-phone-7 linq-to-sql sql-server-ce

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

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

1 个答案:

答案 0 :(得分:11)

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

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