2

ローカルデータベースに新しいオブジェクトを追加しようとすると、次のような通信があります。

テーブル定義または行サイズが最大行サイズの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文字)を書き込もうとすると、すべてが機能します。

どうすればこれを修正できますか?

4

1 に答える 1

2

SQL Serverはレコードをページに格納します。ページは8kであるため、レコードはそのサイズを超えることはできません(8kとの差は管理日です)。

より長いテキストを保存するには、テキスト列の定義をtext、、、ntextまたはvarchar(max)に変更する必要があります。nvarchar(max)これらのblob列は、ページサイズによって制限されません。

于 2012-10-13T14:31:22.447 に答える