[英]MVC identity with database first Entity Framework Error System.InvalidOperationException
I am using the MVC with Identity.I am using custom Identity from here . 我正在将MVC与Identity一起使用。从这里开始使用自定义Identity。 It's is working fine for local SQL Server 2012, but when I host the database into server and if I try to register it throws this: 对于本地SQL Server 2012来说,它工作正常,但是当我将数据库托管到服务器中时,如果尝试注册,则会抛出此错误:
System.InvalidOperationException: The entity type MyUser is not part of the model for the current context. System.InvalidOperationException:实体类型MyUser不属于当前上下文模型。
//Webconfig
<add name="IdentityEntities" connectionString="metadata=res://*/DAL.IdentityModel.csdl|res://*/DAL.IdentityModel.ssdl|res://*/DAL.IdentityModel.msl;provider=System.Data.SqlClient;provider connection string="data source=xxxxx;initial catalog=Identiydatabase;MultipleActiveResultSets=True;App=EntityFramework""providerName="System.Data.EntityClient"/>
public class AccountController : Controller
{
private const string XsrfKey = "XsrfId";
private MyUserManager _userManager;
public AccountController()
{
}
public AccountController(MyUserManager userManager)
{
UserManager = userManager;
}
public MyUserManager UserManager
{
get
{
return _userManager ?? HttpContext.GetOwinContext().GetUserManager<MyUserManager>();
}
private set
{
_userManager = value;
}
}
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Register(RegisterViewModel model)
{
if (ModelState.IsValid)
{
var user = new MyUser
{
Email = model.Email
};
var result = await UserManager.CreateAsync(user,model.Password);
}
//Application DBContext
public class ApplicationDbContext : IdentityDbContext<MyUser, MyRole, long, MyLogin, MyUserRole, MyClaim>
{
#region constructors and destructors
public ApplicationDbContext()
: base("IdentityEntities")
{
}
public static ApplicationDbContext Create()
{ return new ApplicationDbContext();
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
// Map Entities to their tables.
modelBuilder.Entity<MyUser>().ToTable("User");
modelBuilder.Entity<MyRole>().ToTable("Role");
modelBuilder.Entity<MyClaim>().ToTable("UserClaim");
modelBuilder.Entity<MyLogin>().ToTable("UserLogin");
modelBuilder.Entity<MyUserRole>().ToTable("UserRole");
// Set AutoIncrement-Properties
modelBuilder.Entity<MyUser>().Property(r => r.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
modelBuilder.Entity<MyClaim>().Property(r => r.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
modelBuilder.Entity<MyRole>().Property(r => r.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
// Override some column mappings that do not match our default
modelBuilder.Entity<MyUser>().Property(r => r.UserName).HasColumnName("Login");
modelBuilder.Entity<MyUser>().Property(r => r.PasswordHash).HasColumnName("Password");
}
#endregion
}
} }
通过服务器名称(或IP)与remplace YourServer
一起尝试:
<add name="IdentityEntities" providerName="System.Data.SqlClient" connectionString="Server=YourServer;Database=Identiydatabase;Trusted_Connection=True;MultipleActiveResultSets=true;" />
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.