MVC 5 ASPNET IDENTITY 不支持每种类型的多个对象集。但是我在整个项目中只有一个 DbSet
Multiple object sets per type are not supported on MVC 5 ASPNET IDENTITY. But i have only one DbSet existing in the whole project
我正在尝试登录网络应用程序。该数据库已经存在,所以我使用说明 here 自定义 table 以执行登录。我设法修复了一两个错误(?),现在我陷入了困境,我真的无法理解它从何而来。
我的上下文是这样
public class ApplicationDbContext : IdentityDbContext<TblAdmin>
{
public ApplicationDbContext()
: base("TelecomConnection", throwIfV1Schema: false)
{
Database.SetInitializer<ApplicationDbContext>(null);
}
public DbSet<TblAdmin> TblAdmins { get; set; }
public static ApplicationDbContext Create()
{
return new ApplicationDbContext();
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<TblAdmin>().ToTable("tblAdmins");
}
}
最相关的问题是 this,这对我没有帮助。
问题发生的时间点是当用户提供登录凭据时,编译器在这一行停止
var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe,shouldLockout:false);
存在 this 的整个方法是这样的:
public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
{
if (!ModelState.IsValid)
{
return View(model);
}
// This doesn't count login failures towards account lockout
// To enable password failures to trigger account lockout, change to shouldLockout: true
var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe,shouldLockout:false);
switch (result)
{
case SignInStatus.Success:
return RedirectToLocal(returnUrl);
case SignInStatus.LockedOut:
return View("Lockout");
case SignInStatus.RequiresVerification:
return RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = model.RememberMe });
case SignInStatus.Failure:
ModelState.AddModelError("", "Wrong Password.");
return View(model);
default:
ModelState.AddModelError("", "Invalid login attempt.");
return View(model);
}
}
我尝试并搜索了整个项目,甚至找不到整个世界 "Users"。
谁能告诉我如何解决这个问题?
IdentityDbContext<TUser>
已经为 TUser
实现了 DbSet
:
public IDbSet<TUser> Users { get; set; }
因为这里的TUser
是TblAdmin
(IdentityDbContext<TblAdmin>
),当你添加以下内容时:
public DbSet<TblAdmin> TblAdmins { get; set; }
TblAdmin
现在由 two DbSet
s.
跟踪
我正在尝试登录网络应用程序。该数据库已经存在,所以我使用说明 here 自定义 table 以执行登录。我设法修复了一两个错误(?),现在我陷入了困境,我真的无法理解它从何而来。 我的上下文是这样
public class ApplicationDbContext : IdentityDbContext<TblAdmin>
{
public ApplicationDbContext()
: base("TelecomConnection", throwIfV1Schema: false)
{
Database.SetInitializer<ApplicationDbContext>(null);
}
public DbSet<TblAdmin> TblAdmins { get; set; }
public static ApplicationDbContext Create()
{
return new ApplicationDbContext();
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<TblAdmin>().ToTable("tblAdmins");
}
}
最相关的问题是 this,这对我没有帮助。 问题发生的时间点是当用户提供登录凭据时,编译器在这一行停止
var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe,shouldLockout:false);
存在 this 的整个方法是这样的:
public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
{
if (!ModelState.IsValid)
{
return View(model);
}
// This doesn't count login failures towards account lockout
// To enable password failures to trigger account lockout, change to shouldLockout: true
var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe,shouldLockout:false);
switch (result)
{
case SignInStatus.Success:
return RedirectToLocal(returnUrl);
case SignInStatus.LockedOut:
return View("Lockout");
case SignInStatus.RequiresVerification:
return RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = model.RememberMe });
case SignInStatus.Failure:
ModelState.AddModelError("", "Wrong Password.");
return View(model);
default:
ModelState.AddModelError("", "Invalid login attempt.");
return View(model);
}
}
我尝试并搜索了整个项目,甚至找不到整个世界 "Users"。 谁能告诉我如何解决这个问题?
IdentityDbContext<TUser>
已经为 TUser
实现了 DbSet
:
public IDbSet<TUser> Users { get; set; }
因为这里的TUser
是TblAdmin
(IdentityDbContext<TblAdmin>
),当你添加以下内容时:
public DbSet<TblAdmin> TblAdmins { get; set; }
TblAdmin
现在由 two DbSet
s.