我是Entity框架和ASP Identity的新手.
我已按照以下说明使用Code First方法创建数据库:http://dotnetcodr.com/2014/07/10/introduction-to-entityframework-6-part-1-the-basics-of-code-first/
并将它们应用于我自己的项目.
创建表,一切都很好.但是当我尝试注册一个新用户时,会抛出异常:“Entity Framework 6,ASP Identity.无法将值NULL插入列’discriminator’,表’… AspNetUsers’;列不允许空值.INSERT失败“.
由AccountController中的CreateAsync方法触发
第153行:{
第154行:var user = new ApplicationUser {UserName = model.Email,Email = model.Email};
第155行:var result = await UserManager.CreateAsync(user,model.Password);
第156行:if(result.Succeeded)
第157行:{
这是我的DbContext:
public class BulkMailerContext : IdentityDbContext<ApplicationUser> { public BulkMailerContext() : base("BulkMailerContext",throwIfV1Schema: false) { } public DbSet<Email> Emails { get; set; } public DbSet<SubscriptionList> SubscriptionLists { get; set; } public DbSet<Recipient> Recipients { get; set; } }
这是默认的身份上下文:
public class ApplicationDbContext : IdentityDbContext<ApplicationUser> { public ApplicationDbContext() : base("BulkMailerContext",throwIfV1Schema: false) { } public static ApplicationDbContext Create() { return new ApplicationDbContext(); } }
我没有找到有关此异常的更多信息.
这个帖子
http://forums.asp.net/t/1974183.aspx?Cannot+insert+the+value+NULL+into+column+Discriminator
建议项目有一个继承自User的类.我没有那样的东西.
这个帖子
https://connect.microsoft.com/VisualStudio/feedback/details/800655/calling-new-user-with-4-5-1-does-not-pass-column-discriminator-required-in-aspnetusers-tables
关于Web API项目,微软团队说这是一个bug,他们会修复它,就我所知
这个
Cannot insert the value NULL into column ‘Discriminator’ AspNetUsers Table
不提供任何解决方案
这个
Web API 2 cannot register user
表明在Identity 2.0中已经修复了,但我目前拥有Identity 2.0
我有自动迁移 – 关闭,如果重要的话.但是我已经使用update-database命令从PM控制台手动更新了db.
欢迎提出任何建议.