異なる結果を持つ2つの異なるマシンでプロジェクトをテストします。あるマシンでは、SQL ExpressまたはSQL Serverを実行することなく、別のマシンで正常に動作している間にSQL Server Expressのインスタンスを実行する必要があります。ここではいくつかの詳細は以下のとおりです。EntityFrameworkのメモリ内のDBコンテキストがSQL Server Expressに依存するのはなぜですか?
- プロジェクトは、デフォルトの接続ファクトリは
- される方法シードをオーバーライドして、いくつかのデータを提供することで、DBのコンテキストをメモリに内蔵されてEntity Frameworkの(NuGetパッケージ6.1.3)
- を使用していますデフォルトとしてSQL Expressを使用してから、EFのを防ぐ必要があることは
<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つ(新鮮で最新の、そして最も大きい)は、望まない依存性を引きずります。
少なくともSQL Server LocabDBバージョン11がインストールされていますか?ここで説明するSQL Expressの非常に極小のバージョンです。https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/sql-server-2016-express-localdb – jessehouwing
いいえ私は新鮮なマシンにこれをインストールしませんでした。おそらく、これはトリックになる可能性があります。ヒントをありがとう! –
はい、新しくインストールした別のマシンで動作しました。 –