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

标签 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");
      }
   }
}

最佳答案

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

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

关于database - 本地DB抛出字节数组截断到长度为8000异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8431532/

相关文章:

c# - 无法用VS 2010 Express打开WP7的解决方法

c# - WP7/WP8 如何向本地html 页面传递参数?

php - 加入表后不从数据库中检索行

database - 如何解锁 VSS 数据库

c# - Windows Phone 字符串颜色

c# - LINQ-to-SQL 查询何时执行?

c# - LINQ To SQL 动态排序

c# - LINQ Group by Clause with Where 子句

sql - 字符串作为 SQL 数据库中的主键

javascript - 在 MongoDB 聚合中返回带数据的计数