問題 §
SQL Serverに接続してテーブルへの書き込みが上手く行っている。書き込んだデータを読み出すコードを追加すると読み出せる。
なのに、Visual Studioのサーバエクスプローラで見ると書き込まれていない。
原因 §
DBContextクラスのコンストラクタは、何らかの理由でapp.cofigやweb.configの接続文字列を読み出せない時、自動的に"ローカル コンピューター上の .\SQLEXPRESS"に接続するらしい。
より厳密には【既定の接続文字列は、別の DefaultConnectionFactory が登録されていない限り、ローカル コンピューター上の .\SQLEXPRESS を指します】ということらしい。
つまり、接続文字列で指定した先のサーバではなく、ローカルのSQL Server Expressを読み書きしている可能性がある。
解決 §
以下の点を再チェックする。
- app.cofigやweb.configが正しく追加されていることを確認する
- app.cofigやweb.configの中味が正しいことを確認する。特にXMLの要素名や、接続文字列の名前をきちんと確認する。この名前はDBContextクラスのコンストラクタに渡す文字列と一致していなければならない
参考 §
DbContext クラス