ユーザーごとに異なる接続文字列が必要であるという要件があります。アイデアは、接続文字列のandとして使用されるログイン画面でusername
and を提供することです。したがって、アプリケーションを作成して、ユーザーごとに異なる接続文字列を使用し、アプリケーション全体でこの接続文字列を使用します。password
username
password
EF 4.1 でこのセットアップを取得する方法
PS:私は使用していますDbContext
ユーザーごとに異なる接続文字列が必要であるという要件があります。アイデアは、接続文字列のandとして使用されるログイン画面でusername
and を提供することです。したがって、アプリケーションを作成して、ユーザーごとに異なる接続文字列を使用し、アプリケーション全体でこの接続文字列を使用します。password
username
password
EF 4.1 でこのセットアップを取得する方法
PS:私は使用していますDbContext
KevinJunghansに感謝します
これが私がやった方法です。
モデルコンテキストクラスで
public class MyEntities : DbContext
{
public MyEntities (string connectionString)
: base(connectionString)
{
}
次に、ログインコントローラで
var dataConnection = WebConfigurationManager.OpenWebConfiguration("/").ConnectionStrings.ConnectionStrings["MyConnectionString"].ConnectionString;
dataConnection = dataConnection.Substring(0, dataConnection.LastIndexOf("\"")) + ";USER ID=" + userName +";Password=" + password + "\"";
Session["connectionString"] = dataConnection;
そして他のどこから
var _db = new MyEntities (Session["connectionString"].ToString());
接続文字列または名前を引数として受け入れる次のDbContext コンストラクターを使用できます。
public DbContext(
string nameOrConnectionString,
DbCompiledModel model
)
どちらが具体的にあなたの質問なのかわかりません。MVCについてではなく、EF専用です。
私があなたのやりたいことを正しく理解していれば、おそらくユーザーごとにデータベースが分かれていますが、ログイン用のユーザーアカウント情報用のデータベースは1つだけです。
そのデータベースにもう1つのフィールド、ユーザーログインデータベースを、そのユーザーの特定のconnectionStringで追加できます。次に、ユーザーがログインするときに、そのデータベースのDbContextを使用してログインし、connectionStringの値を取得して、ログインしたユーザーの特定のデータベースの新しいDbContextを生成します。
さらにサポートが必要な場合はコメントしてください。