use*_*689 8 c# entity-framework ninject asp.net-identity
我刚刚将ASP.NET Identity Entity Framework软件包从1.0升级到2.0,其中一个Ninject绑定现已破坏:
kernel.Bind<IUserStore<User>>().To<UserStore<User>>();
kernel.Bind<UserManager<User>>().ToSelf();
kernel.Bind<IRoleStore<IdentityRole>>().To<RoleStore<IdentityRole>>();
kernel.Bind<RoleManager<IdentityRole>>().ToSelf();
Run Code Online (Sandbox Code Playgroud)
第二个最后一个是在编译时给出这个错误:
类型'Microsoft.AspNet.Identity.EntityFramework.RoleStore'不能在泛型类型或方法'Ninject.Syntax.IBindingToSyntax.To()'中用作类型参数'TImplementation'.
没有从"Microsoft.AspNet.Identity.EntityFramework.RoleStore"到"Microsoft.AspNet.Identity.IRoleStore"的隐式引用转换.
这些是所涉及的类的一些声明:
public interface IRoleStore<TRole> : IRoleStore<TRole, string>, IDisposable where TRole : IRole<string>
public class RoleStore<TRole, TKey, TUserRole> : IQueryableRoleStore<TRole, TKey>, IRoleStore<TRole, TKey>, IDisposable where TRole : IdentityRole<TKey, TUserRole>, new() where TUserRole : IdentityUserRole<TKey>, new()
Run Code Online (Sandbox Code Playgroud)
我不确定是什么导致它破裂?
Hao*_*ung 10
我们添加了一个新的基本RoleStore类,并将用户角色实体类型添加为泛型类型,因此也许可以尝试
kernel.Bind<IRoleStore<IdentityRole, string>>().To<RoleStore<IdentityRole, string, IdentityUserRole>>();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2633 次 |
| 最近记录: |