10

エラーの取得:

System.Data.ProviderIncompatibleException: データベースからプロバイダー情報を取得中にエラーが発生しました。これは、不適切な接続文字列を使用する Entity Framework が原因である可能性があります。
内部例外で詳細を確認し、接続文字列が正しいことを確認してください。
---> System.Data.ProviderIncompatibleException: プロバイダーは ProviderManifestToken 文字列を返しませんでした。
---> System.Data.SqlClient.SqlException: SQL Server への接続を確立中に、ネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからないか、アクセスできませんでした。インスタンス名が正しいこと、および SQL Server がリモート接続を許可するように構成されていることを確認してください。(プロバイダー: SQL ネットワーク インターフェイス、エラー: 25 - 接続文字列が無効です)

しようとすると同じエラーが発生しますAdd-Migration

これが私の接続文字列です。SQLEXPRESS ではなく、ローカル SQL サーバーにアクセスする必要があります。

  <connectionStrings>
    <add name="ReaderInsightDbContext" 
         connectionString="data source=localhost\MSSQLSERVER;
                         initial catalog=ReaderInsight;Integrated Security=True" 
         providerName="System.Data.SqlClient" />
  </connectionStrings>

私のDBは次の場所にあります:

C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA

したがって、私のインスタンスは MSSQLSERVER です。何が起こっているのかわからない。最初は問題なく動作していましたが、UOW パターンを使用するようにコードを変更した後、これが発生しています。また、EF 4.3 から EF5 にアップグレードしました。同じ問題。

接続文字列でデータ ソースのさまざまなバリエーションを試しましたが、どれも機能しません。いくつかの例を次に示します。

  • ローカルホスト\MSSQL サーバー
  • .\MSSQL サーバー
  • //localhost\MSSQLSERVER
  • (ローカル)\MSSQLSERVER
  • 127.0.0.1\MSSQL サーバー

.\SQLEXPRESS を実行すると動作します。

4

7 に答える 7

8

それを解決することができました。

要するに、移行ファイルを手動で削除すると問題が発生します。

接続文字列が次のようになっていることを確認してください。

  <connectionStrings>
    <add name="ReaderInsightDbContext" 
     connectionString=
     "Data Source=(local);Initial Catalog=ReaderInsight;Integrated Security=True"
     providerName="System.Data.SqlClient" />
  </connectionStrings>

Update-Database -TargetMigration:$InitialDatabaseまだ保留中の変更があると言ったため、機能しなかったを実行しました。

だから私は実行しました

System.Data.Entity.Database.SetInitializer(     
  new System.Data
            .Entity
            .DropCreateDatabaseIfModelChanges<ReaderInsightDbContext>()); 

global.asaxファイル内。

コメントアウトしたので、二度と実行されません。次に、Add-Migration Initを実行すると、DB全体のスクリプトが再作成され、Update-Databaseを実行すると魅力的なように機能しました。

于 2012-09-05T14:54:02.343 に答える
0

接続文字列で使用している SQL Server が起動しているかどうかを確認します。

于 2013-04-22T09:27:05.540 に答える
0

先日も同じ問題がありました。その理由は、私の MSSQL サーバーのバージョンでした。VS2010 と SQL SERVER 2008 を使用しようとしましたが、うまくいきませんでした。VS2010に付属している(そして開始されていない)SQL Expressでは正常に機能しましたが、SQL SERVERでは機能しませんでした。

于 2013-07-20T17:59:49.003 に答える
0

パスワードを変更したときに、SQL Server が起動しないというこの問題が発生しました。それを確認します :)

于 2013-03-14T21:28:21.610 に答える
0

この投稿を参照してください。

MVC3 ミュージック ストア チュートリアルの接続文字列の問題

MARS 設定が欠落しているようです。

于 2012-09-05T13:02:08.097 に答える
-3

これをVS 2010で使用しましたが、うまくいきました:

  1. 追加されたユーザー インスタンス = true
  2. データ ソース .\SQLEXPRESS を使用

于 2014-03-01T00:04:09.097 に答える