テストプロジェクトでは、SimpleMembershipProviderとEntity Framework 5を使用しています。テストプロジェクトはlocaldbを使用してデータベースを作成し、突然動作を停止しました。何が変わったのかわかりませんが、困惑しています。これはほとんど定型文です。
private static void InitializeSimpleMembership()
{
Database.SetInitializer<TestEfhContext>(null);
using (var context = new TestEfhContext(ConnectionString))
{
if (!context.Database.Exists())
{
// Create the SimpleMembership database without Entity Framework migration schema
((IObjectContextAdapter)context).ObjectContext.CreateDatabase();
}
WebSecurity.InitializeDatabaseConnection(ConnectionString, "Users", "UserID", "UserName", autoCreateTables: true);
}
}
ConnectionString
がapp.configのキーでない場合、その名前のデータベースを作成し、ユーザーモデル用に初期化することになっています。localdbデータベースがまだ存在しない場合は、正常に作成されます。WebSecurity.InitializeDatabaseConnection
今失敗する
`Connection string "testdb" was not found.`
トラブルシューティング中に、エイリアスの代わりに実際の接続文字列を使用するように接続文字列を変更してみました。
WebSecurity.InitializeDatabaseConnection(context.Database.Connection.ConnectionString,
"Users", "UserID", "UserName", autoCreateTables: true);
これは、localdbサーバーへの完全な接続文字列に解決されます。
Data Source=(localdb)\\v11.0;Initial Catalog=testdb;Integrated Security=True;MultipleActiveResultSets=True;Application Name=EntityFrameworkMUE'
私はこれが少なくともうまくいくと思った。そうではありません:
Connection string "Data Source=(localdb)\v11.0;Initial Catalog=testdb;Integrated Security=True;MultipleActiveResultSets=True;Application Name=EntityFrameworkMUE" was not found.
何か案は?これは私がEFを使用した最初のプロジェクトであるため、その一部はまだ私には少し不思議です。テストプロジェクトを最初に設定したときは魔法のように機能し、何が変わったのか理解できません。イニシャライザが実際の接続文字列でも機能しないのは特に奇妙に思えます。実際のアプリケーションは引き続き正常に機能します。テストプロジェクトを機能させることができません。