ASP.NET MVC 3でWebアプリを作成しています。SQLServerDB(開発中のSQL Server Express)を使用して、メンバーシップ、役割、およびその他の関連情報を格納したいと考えています。これまでのところ、自動生成されたaspnetdb.mdf
DBに依存しており、新しいユーザーの作成、ログイン、およびログオフを問題なく行うことができました。ただし、アプリケーションで使用されるクラスを表すテーブルを含む別のDBがあります(Entity Framework 4を使用して、クラスはDBに基づいて自動作成されました)。
つまり、私は2つのDBを持っていますが、自分のサイトに膨大な数のユーザーがいるとは想定しておらず、実際には2つのDBは必要ないと考えているため、1つだけにしたいのです。私の場合、aspnetdb.mdf
DBにはまだ実際のデータがないので、そのデータの保存について心配する必要はありません。したがって、解決策は、2つのDBを結合するかaspnetdb.mdf
、最初にDBを作成せずに、最初から他のDBを使用してユーザーテーブルやメンバーシップテーブルなどを格納することです。
私の質問はマルチパートです:
1)両方のDBを保持している場合、DB内のaspnet_Users
テーブルをaspnetdb.mdf
他のDBから外部キーとして参照する方法はありますか?いくつか検索しましたが、これは不可能か、非常に不便なようです。これが可能だったとしたら、それは悪い考えですか?
2)これらを1つのDBに結合する方法について多読を行い、そこに多くのことが書かれているのを見てきました(ここSOを含む)。これを実現するための最良の(または少なくとも良い)方法は、aspnet_regsql.exeツールを使用して「他のDB」を構成し、aspnetdb.mdf
DBを削除して、Web.configファイルの接続文字列を変更することです。私が保持する他のDBを参照します。
この声明に出くわしたとき、私はちょうど変更を加え始めようとしていました:
Aspnet_regsqlツールは、ユーザーインスタンスモードで実行されているSQL Server Expressのローカルインストールでは使用しないでください(つまり、接続文字列にはUser Instance = trueが含まれます)。ここで見つかりました。私のWeb.configファイルは
user instance=true
いたるところにあります。これは、aspnet_reqsqlツールを実行する必要がないことを意味しますか?Web.config接続文字列を変更してaspnetdb.mdf
DBを削除することはできますか?user instance=true
ライブに移行するときに、を別のものに変更する必要がありますか?
3)問題の解決策には、aspnet_regsqlツールとWeb.configファイルへのいくつかの変更が含まれていると想定していたところまで来ました。より簡単でより良い解決策があれば、私に知らせてください。
明確にするために、私は現在SQL Express、VS Express 2010、およびASP.NET MVC 3を使用して開発中です。最終的には、サイトをホストされた実稼働環境に移動します。したがって、私が実装するソリューションはすべて、稼働するときに引き継ぐ必要があります。
私が言ったように、私はインターネット全体でかなりの読書をしました。これらすべてがどのように連携するかについていくつかのアイデアを形成し始めましたが、読むほど多くの質問があり、明確な方向性がわからなくなってきています。助けてくれてありがとう。