自定义错误 - 实体类型ApplicationUser不是当前上下文的模型的一部分

时间:2014-05-21 19:03:34

标签: entity-framework asp.net-mvc-5

我正在尝试实现用户界面但是使用ApplicationUser的自定义但我得到错误

“实体类型ApplicationUser不是当前上下文模型的一部分。”

直到现在我做了什么

public class ApplicationUser : IdentityUser
{
    public string FullName { get; set; }
    public string AddressCode { get; set; }
} 

我的dbcontext文件看起来像

public class MYDbContext:IdentityDbContext<ApplicationUser>
{
    public MYDbContext()
        : base("DatabaseConnection")
    { 

    }
}

我的连接字符串就像

<connectionStrings>
<add name="DatabaseConnection" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=MYUser;Integrated Security=True" providerName="System.Data.SqlClient" />

我扩展了UserStore(我不确定我是否做得正确)覆盖了一些方法以及使用少量的inbulilt方法

public class MYUserStore<TUser> : UserStore<ApplicationUser>
{
    private MYDbContext myDbContext;

    public MYUserStore(MYDbContext DbContext)
    {
        this.myDbContext = DbContext;
    }


    public override Task CreateAsync(ApplicationUser user)
    {
        return base.CreateAsync(user); //Here i would like implement on my own way if needed
    }
}

我尝试创建存储库来inovke MYUserStore,并从我的控制器调用UserRepository。

public class UserRepository
{
    public UserManager<ApplicationUser> UserManager { get; private set; }

    public UserRepository(UserManager<ApplicationUser> usermanager)
    {
       UserManager = usermanager;
    }

    public UserRepository()
        : this(new UserManager<ApplicationUser>(new MYUserStore<ApplicationUser>(new MYDbContext())))
    {

    }


   public async Task<IdentityResult> SaveUser(ApplicationUser user)
    {
        return await UserManager.CreateAsync(user);
    }
}

我做得对吗?这是正确的方式吗?

0 个答案:

没有答案