1

異なる結果を持つ2つの異なるマシンでプロジェクトをテストします。あるマシンでは、SQL ExpressまたはSQL Serverを実行することなく、別のマシンで正常に動作している間にSQL Server Expressのインスタンスを実行する必要があります。ここではいくつかの詳細は以下のとおりです。EntityFrameworkのメモリ内のDBコンテキストがSQL Server Expressに依存するのはなぜですか?

  • プロジェクトは、デフォルトの接続ファクトリは
  • される方法シードをオーバーライドして、いくつかのデータを提供することで、DBのコンテキストをメモリに内蔵されてEntity Frameworkの(NuGetパッケージ6.1.3)
  • を使用していますデフォルトとしてSQL Expressを使用してから、EFのを防ぐ必要があることは

、LocalDbConnectionFactoryに設定ここでEntity Frameworkの構成セクションです:

<entityFramework> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework"> 
     <parameters> 
     <parameter value="v11.0" /> 
     </parameters> 
    </defaultConnectionFactory> 
    </entityFramework> 

これまでのところとても良いです。今、古いものがたくさんインストールされている錆びたWindows 8.1マシンでプロジェクトを実行すると(Visual Studio 2013、SQL ServerとSQL Express、古いバージョンの.NETフレームワークなど)、すべて正常に動作します。しかし、Visual Studio 2017だけで新しいWindows 10マシンで同じプロジェクトを実行しようとすると、長いタイムアウト後にエラーが発生し、SQL Serverからの応答が得られないという例外が発生します。 SQL Expressをインストールし、TCP/IPとポート1483を有効にして起動すると、問題が解決しました。

これは、SQL Serverの依存関係がEntity Frameworkのために固定されているが、今は別の環境で実行されている2つの同一のプロジェクトインスタンスでデモンストレーションできるようになったもう1つ(新鮮で最新の、そして最も大きい)は、望まない依存性を引きずります。

+1

少なくともSQL Server LocabDBバージョン11がインストールされていますか?ここで説明するSQL Expressの非常に極小のバージョンです。https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/sql-server-2016-express-localdb – jessehouwing

+0

いいえ私は新鮮なマシンにこれをインストールしませんでした。おそらく、これはトリックになる可能性があります。ヒントをありがとう! –

+0

はい、新しくインストールした別のマシンで動作しました。 –

答えて

1

SQL Server LocabDBバージョン11のインストールを提案した@jessehouwingのおかげで、SQL ServerまたはSQL Server Expressがサービスとして実行されていない新鮮なマシンで動作するようになりました。

関連する問題