1

SQL Server Compact データベースを 3.5 から 4.0 バージョンにアップグレードする必要があります。私はlinq-to-sqlを使用しています

stackoverflow で見つけたいくつかのことを試しましたが、役に立ちませんでした:

  1. ダイアログを試しAdd 4.0 connectionました (エラー メッセージは表示されず、bak ファイルが作成されました)

  2. コードでアップグレードを試みました: (エラーメッセージなし)

    System.Data.SqlServerCe.SqlCeEngine engine= new System.Data.SqlServerCe.SqlCeEngine("Data source = ...");
    engine.Upgrade();
    
  3. データベースの破損をチェックしました (システムは破損の問題がないことを返しました)

    System.Data.SqlServerCe.SqlCeEngine engine= new System.Data.SqlServerCe.SqlCeEngine("Data source = ...");
    engine.Verify();
    

    これらの操作の後、dbml ファイルを再作成したかったのですが、エラー メッセージが表示されました。

    互換性のないデータベース バージョン (..) DB バージョン 4000000、要求されたバージョン 3505053 (..)

  4. 私がチェックしたデバッグモードでdb.Connection.ServerVersion=は3.5.8080.0を返します

  5. データベース接続プロパティのバージョンは 4.0.8876.1 です

助言がありますか?

4

1 に答える 1

1

データベースを 4.0 にアップグレードすると、dbml ファイルを作成できなくなります。これを担当するツールは 3.5 データベース ファイルでのみ動作するためです。考えられる回避策の 1 つは、2 つのバージョンのデータベースを用意することです。1 つは dbml 生成用、もう 1 つは使用用です。SqlCeConnection オブジェクトを使用して DataContext オブジェクトを初期化することを忘れないでください。そうしないと、4.0 は LINQ to SQL で動作しません。または、4.0 データベース ファイルから直接 DataContext を生成できる SQL Server Compact Toolbox を試すことができます (SqlCeConnection で初期化する必要があります)。物体)

于 2012-12-06T18:18:48.953 に答える