C# .NET の DB として Sql Compact3.5 を使用していますが、指定できる sdf の最大サイズはどれくらいですか? プログラムで sdf ファイルの最大サイズを増やす方法はありますか? もしそうなら、どのように?
5 に答える
データベースの最大サイズは、デフォルトで 128 MB です。次の接続文字列を使用して、これをオーバーライドします。
Data Source=MyData.sdf;Max Database Size=256;Persist Security Info=False;
(から: http://www.connectionstrings.com/sql-server-2005-ce ) および (から: http://msdn.microsoft.com/... )
データベースの絶対最大サイズは 4 GB です。
実際には、Max Database Sizeは、 Microsoft SQL CE 4.0で 16 から 4091 として指定する必要があります。デフォルト値は 257 (Mb) です。4096 (正確には 4Gb) を使用しようとしましたが、エラーが発生しました。4091 は有効な値で、接続文字列は次のようになります。
Data Source=file.sdf; Max Database Size=4091
Microsoft SQL Compact EditionをEntity Frameworkと共に使用する場合(私は使用しています)、EF の接続文字列は次のようになります。
string template = "metadata=res://*/Model.csdl|res://*/Model.ssdl|res://*/Model.msl;provider=System.Data.SqlServerCe.4.0;"
+ "provider connection string=\";Data Source={0}; Max Database Size=4091 \";";
string s1 = string.Format(template, SdfFilePath);
ここで、Model は edmx ファイルの名前です。
Benny Jobiganが言ったように、接続文字列を介して最大サイズを指定できます。
ただし、指定するサイズは16〜4091である必要があります。これ以外のサイズを指定すると、次の例外がスローされます(C#SQL Server Compact 3.5ライブラリから)。
System.ArgumentException:ssce:maxデータベースサイズトークンの値が、許可された値(16,4091)の範囲外です。
探している人のためだけに...
SQL CE データベースが公開され、使用されている場合でも、接続文字列の [データベースの最大サイズ] を変更することでサイズを増やすことができます (上記のとおり)。最初に選択した値に固執していません。
サーバー エクスプローラーでデータベース名を右クリックし、[接続の変更] を選択します。詳細ボタンをクリックします。データベースのデフォルト サイズを変更できます。