我试图从地图控件作为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 { ... }