我正在尝试实现用户界面但是使用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);
}
}
我做得对吗?这是正确的方式吗?