4

Visual Studio 2008 IDE を使用して、SQL Server Compact 3.5 データベースのローカル データベース スキーマを編集したいと考えています。ただし、ドキュメントと UI のすべては、アプリケーション/アセンブリが 1 つのデータベースのみを使用し、既存のスキーマに基づいて新しいデータベースを作成することを望んでいないことを前提としているようです。

ビジュアル ツールを使用して DB スキーマを編集し、編集したスキーマに基づいて新しいデータベース ファイルを作成するメカニズムが必要です。このようにして、アプリケーションが作成する各ドキュメントは、独自の個別のデータベース ファイル (.sdf) に格納されます。さらに、単体テストの目的で、空のデータベースで単体テストを実行するために、空の一時 .sdf ファイルを作成できるようにしたいと考えています。

既存のスキーマを使用して新しい空のデータベースを作成する方法を知っている唯一の方法は、マスター .sdf ファイルを新しいファイルにコピーすることです。

C# コードを使用して新しい .sdf ファイルを作成するには、どのような方法が推奨されますか? つまり、MyModel.Create("foo.sdf") を実装して、Visual Studio で作成したスキーマを使用して .sdf ファイルを作成する方法です。

編集:長い調査の後、VS2008 ローカル データベース .sdf エディターを完全に破棄し、LINQ-to-SQL を使用して新しい .sdf ファイルの作成を開始しました。ここでは、一連の C# クラスを指定し、LINQ-to-SQL で動作するように注釈を付けて、DataContext の CreateDatabase メソッドを呼び出して新しいデータベース ファイルを作成するだけです。MSDN に適切なドキュメントがあります:方法: データベースを動的に作成する (LINQ to SQL)

4

1 に答える 1

3

スキーマと必要な初期データを含む「model.sdf」データベースを作成します。新しいデータベースを作成する場合は、このモデルからコピーを作成します。

また、既存のデータベースから Sql-DDL を作成し(別のリンク)、空のデータベースを作成して、その上でこの SQL を実行することもできます。これはかなり遅くなります。

于 2009-01-21T10:20:16.887 に答える