Identity 2.0 と Identity 2.0 Samples ボイラープレートを使用する MVC 5 アプリケーションで Unity.Mvc5 を使用して Unity を構成しようとすると、次の例外が発生します。私はこの SO Configure Unity DI for ASP.NET Identityを読みましたが、何が欠けているのかまだはっきりしていません。ここで何が間違っていますか?
現在の型 System.Data.Common.DbConnection は抽象クラスであり、構築できません。タイプマッピングがありませんか?
[ResolutionFailedException: 依存関係の解決に失敗しました。タイプ = "myApp.Web.Controllers.AccountController"、名前 = "(none)"。例外が発生しました: 解決中。
例外は次のとおりです。 InvalidOperationException - 現在の型 System.Data.Common.DbConnection は抽象クラスであり、構築できません。タイプマッピングがありませんか?
例外発生時のコンテナは次のとおりでした。
myApp.Web.Controllers.AccountController,(none) の解決中 コンストラクタ myApp.Web.Controllers.AccountController(myApp.Web.Models.ApplicationUserManager userManager) のパラメータ「userManager」の解決中 myApp.Web.Models.ApplicationUserManager,(none) 解決中のパラメータコンストラクタ myApp.Web.Models.ApplicationUserManager(Microsoft.AspNet.Identity.IUserStore 1[[myApp.Web.DAL.Profiles.ApplicationUser, myApp.Web, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]] store)
Resolving Microsoft.AspNet.Identity.EntityFramework.UserStore
1[myApp.Web.DAL.Profiles.ApplicationUser],(none) の「ストア」(Microsoft.AspNet.Identity.IUserStore からマップ)1[myApp.Web.DAL.Profiles.ApplicationUser], (none))
Resolving parameter "context" of constructor Microsoft.AspNet.Identity.EntityFramework.UserStore
1[[myApp.Web.DAL.Profiles.ApplicationUser, myApp.Web, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]](System.Data.Entity.DbContext コンテキスト) System.Data.Entity.DbContext の解決,(none) コンストラクタ System.Data.Entity.DbContext(System.Data.Common.DbConnection existingConnection, System.Data.Entity.Infrastructure.DbCompiledModel model, System.Boolean contextOwnsConnection) のパラメータ「existingConnection」を解決中 System.Data.Common を解決中.DbConnection,(なし)
変更したアカウントコントローラー
public AccountController(ApplicationUserManager userManager)
{
_userManager = userManager;
}
private ApplicationUserManager _userManager;
登録したコンテナ
container.RegisterType<ApplicationUserManager>(new HierarchicalLifetimeManager());
container.RegisterType<IUserStore<ApplicationUser>, UserStore<ApplicationUser>>(new HierarchicalLifetimeManager());