Cześć, piszę aplikacje w aps.net mvc uzywająć entity framework code first i idywidualnych kont użytkowników.
Połączyłam klasę dziedziczącą po identitydbcontext z moim podstawowym dbcontext i wygląda to tak:
clasa CrudContext:
public class CrudContext : IdentityDbContext<User>
{
public CrudContext()
: base("name=PlanszoWebDatabase")
{
}
public void SetModified(object entity)
{
Entry(entity).State = EntityState.Modified;
}
public void SetAdd(object entity)
{
Entry(entity).State = EntityState.Added;
}
public DbSet<Game> Games { get; set; }
public DbSet<Rate> Rates { get; set; }
public DbSet<Comment> Comments { get; set; }
public DbSet<Review> Reviews { get; set; }
public DbSet<Category> Categorys { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
base.OnModelCreating(modelBuilder);
}
}
Klasa User:
public class User: IdentityUser
{
public override string Id
{
get { return this.UserId.ToString(); }
}
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int UserId { get; set; }
public String FirstName { get; set; }
public String LastName { get; set; }
public bool Moderator { get; set; }
public bool Administrator { get; set; }
public string Email { get; set; }
public string Login { get; set; }
public string Password { get; set; }
public DateTime DateOfBirth { get; set; }
public byte[] Photo { get; set; }
public virtual ICollection<Rate> Rates { get; set; }
public virtual ICollection<Review> Reviews { get; set; }
public virtual ICollection<Comment> Comments { get; set; }
}
i inicjalizator przy którym wyskakuje błąd:
public class DatabaseInitializer : DropCreateDatabaseAlways<CrudContext>
{
protected override void Seed(CrudContext context)
{
var categorys = new List<Category>
{
new Category{Name = "Adventure" },
};
categorys.ForEach(s => context.Categorys.Add(s));
context.SaveChanges();
var users = new List<User>
{
new User{FirstName = "Naj", LastName = "Ikslawok", Moderator=false, Administrator=false, UserName = "Palindrom", Password = "nieczytaj", Email = "lok@pal.il", DateOfBirth = DateTime.Parse("1990-01-02")},
new User{FirstName = "Jan", LastName = "Kowalski", Moderator=false, Administrator=false, UserName = "Different", Password = "ytajaw", Email = "lok2@pal.il", DateOfBirth = DateTime.Parse("1991-05-04")},
};
users.ForEach(s => context.Users.Add(s));
context.SaveChanges();
fragment do miejsca w którym pojawia się błąd
pojawia mi się taki błąd w linijce z save changes przy userach :
Violation of PRIMARY KEY constraint 'PK_dbo.AspNetUsers'. Cannot insert duplicate key in object 'dbo.AspNetUsers'. The duplicate key value is (0).\r\nThe statement has been terminated
Bardzo proszę o wszelką pomoc. I pytanie czy w ogóle ta klasa User może służeć jako AplicationUser z Identity i jako zwykły User w bazie danych?