参数类型不能分配给参数类型,尽管它是继承的
本文关键字:参数 类型 继承 不能 不能分 分配 | 更新日期: 2023-09-27 18:21:44
我试图从头开始编写一个带有 ASP.net Identity的MVC应用程序。为此,我遵循了Ben Foster的两个教程(教程第1部分和教程第2部分(
但我停留在第二个教程 - 配置用户管理器。以下行对我不起作用:
// configure the user manager
UserManagerFactory = () =>
{
var usermanager = new UserManager<AppUser>(
new UserStore<AppUser>(new AppDbContext()));
...
}
视觉工作室下划线
new AppDbContext()
并向我显示以下消息:
参数类型"MyProject.DbContext.AppDbContext"不可分配给参数类型"System.Data.Entity.DbContext">
我不明白为什么它在我的解决方案中不起作用,因为我完全遵循了教程。我的 AppDbContext 如下所示:
namespace MyProject.DbContext
{
using MyProject.Models;
using Microsoft.AspNet.Identity.EntityFramework;
public class AppDbContext : IdentityDbContext<User>
{
public AppDbContext()
: base("DefaultConnection")
{
}
}
}
我的用户类:
namespace MyProject.Models
{
using Microsoft.AspNet.Identity.EntityFramework;
public class User : IdentityUser
{
public string Name{ get; set; }
}
}
我还从 Ben 下载了源代码并尝试运行它,它可以正常工作。我认为我的所有文件都不在同一个文件夹中没有任何区别?!
我希望你能帮助我。如果一个简单的教程不能正常工作,那真的很令人沮丧......
问候,眨眼
我通过删除所有与 owin 和 ASP.net Identity 有关的引用并再次重新添加它们来解决问题。
我认为,问题是由引用的 dll 和实际使用的 dll 之间的差异引起的......(在包管理器控制台上玩了很多。
你的UserManager
将AppUser
作为泛型类型:UserManager<AppUser>
,当你的数据库上下文将User
作为泛型参数时。 AppUser
和User
不是同一个类。
您的用户定义类在任何地方都应该相同。