VS2012、SQLExplress、最新の .net バージョン、コード ファースト エンティティ フレームワーク、および移行を使用して、単純な webb アプリを構築しています。新しい単純なメンバーシップをデフォルトとして使用しているVS2012の標準MVC4テンプレートから構築しています。
私の問題は、作成したデータベースを使用する Websecurity クラスを取得できないことです。Glabal.asax.cs でこのコードを使用します。
WebMatrix.WebData.WebSecurity.InitializeDatabaseConnection(
"DefaultConnection",
"UserProfile",
"UserId",
"UserName",
autoCreateTables: true);
このスニペットを移行シード メソッドでも実行しようとしましたが、結果は同じでした。
私の接続文字列は次のようになります
<add name="DefaultConnection" connectionString="Data Source=localhost\SQLEXPRESS;Integrated Security=True;Connect Timeout=15;Encrypt=False;TrustServerCertificate=False" providerName="System.Data.SqlClient" />
パラメータを指定してイニシャライザを実行するとautoCreateTables: true
、イニタライザはこのように VS2012 でのみ表示される新しい接続を作成します。
この写真は、Web セキュリティに別の接続文字列を強制的に使用させようとしたため、SecurityConnection2 という接続を示していますが、動作は DefaultConnection を使用していた場合と同じです。ご覧のとおり、この新しい接続内にすべてのテーブルが作成され、データベースのどこにも tose テーブルが見つかりません。
代わりautoCreateTables: false
に初期化子を使用すると、UserProfile テーブルが存在しないというエラーがスローされます。
すべての例とチュートリアルで、これを読んだことがありますが、そのままで機能しますが、機能させることはできません。
これにはおそらく簡単な解決策がありますが、私はそれを見ることができず、ここでどんな種類の助けにも感謝します.