Linq 将对象写入表时超过8060字节-Windows Phone 7.5

Linq 将对象写入表时超过8060字节-Windows Phone 7.5,linq,windows-phone-7,Linq,Windows Phone 7,当我尝试将新对象添加到本地数据库时,我有以下通信: 表定义或行大小超过了最大行大小8060字节 我的表具有以下结构: [Table] public class SomeClass { [Column(IsPrimaryKey = true, IsDbGenerated = true, CanBeNull = false, AutoSync = AutoSync.OnInsert)] public int Id { get; set; } [Column] publ

当我尝试将新对象添加到本地数据库时,我有以下通信:

表定义或行大小超过了最大行大小8060字节

我的表具有以下结构:

[Table]
public class SomeClass
{
    [Column(IsPrimaryKey = true, IsDbGenerated = true, CanBeNull = false, AutoSync = AutoSync.OnInsert)]
    public int Id { get; set; }
    [Column]
    public string String1 { get; set; }
    [Column]
    public string String2 { get; set; }
    [Column]
    public string String3 { get; set; }
    [Column]
    public string String4 { get; set; }
}
其中3个字符串(String2、String3、String4)将包含2000-3000个字符。 当我试图写更小的数据(1000到1500个字符)时,一切都正常


如何解决此问题?

SQL Server将记录存储在页面中,页面为8k,因此记录不能超过该大小(与8k的差值为管理日期)


您需要将文本列定义更改为
text
ntext
varchar(max)
nvarchar(max)
,以存储更长的文本。这些blob列不受页面大小限制。

感谢您的回复。我使用了[Column(DbType=“NText”)],它现在可以工作了!但是compact edition db不支持varchar(max)和nvarchar(max)。