参数类型不能分配给参数类型,尽管它是继承的

本文关键字:参数 类型 继承 不能 不能分 分配 | 更新日期: 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 之间的差异引起的......(在包管理器控制台上玩了很多。

你的UserManagerAppUser作为泛型类型:UserManager<AppUser> ,当你的数据库上下文将User作为泛型参数时。 AppUserUser不是同一个类。

您的用户定义类在任何地方都应该相同。