Je travaille sur un projet asp.net-core 2.0.
Ce projet contient une base de données avec Entity Framework Core. Je travaille sur le mode Code First avec les migrations.
Ce que je veux faire, c'est créer des données par défaut dans ma base de données lors de la création de la structure.
J'ai besoin de créer un utilisateur.
J'ai examiné la fonction OnModelCreating dans ma classe IdentityDbContext, mais je n'ai aucun moyen d'accéder à l'objet userManager.
Donc je ne sais pas comment faire .... Merci
Voici mon code:
public class MyContext : IdentityDbContext<Utilisateurs>
{
public static string ConnectionString;
public MyContext()
{
}
public MyContext(DbContextOptions<pluginwebContext> options) : base(options)
{
}
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer(MyContext.ConnectionString);
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
var user = new MyUserClass { UserName = "test" };
// Error There
var result = await _userManager.CreateAsync(user, "1234");
}
public DbSet<MyTable1> table1 { get; set; }
...
}
La convention d'initialisation des données dans la classe DbInitialize n'est pas dans la méthode modelCreating. La méthode la plus utilisée avec modelCreating consiste à mapper vos entités sur des tables de base de données, comme le code suivant.
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Course>().ToTable("Course");
modelBuilder.Entity<Enrollment>().ToTable("Enrollment");
modelBuilder.Entity<Student>().ToTable("Student");
}
Plus tard, vous pourrez créer une classe pour votre objet factice.
public static class DbInitializer
{
public static void Initialize(SchoolContext context)
{
//context.Database.EnsureCreated();
// Look for any students.
if (context.Students.Any())
{
return; // DB has been seeded
}
var courses = new Course[]
{
new Course {CourseID = 1050, Title = "Chemistry", Credits = 3,
DepartmentID = departments.Single( s => s.Name == "Engineering").DepartmentID
},
new Course {CourseID = 4022, Title = "Microeconomics", Credits = 3,
DepartmentID = departments.Single( s => s.Name == "Economics").DepartmentID
},
new Course {CourseID = 4041, Title = "Macroeconomics", Credits = 3,
DepartmentID = departments.Single( s => s.Name == "Economics").DepartmentID
},
new Course {CourseID = 1045, Title = "Calculus", Credits = 4,
DepartmentID = departments.Single( s => s.Name == "Mathematics").DepartmentID
},
new Course {CourseID = 2042, Title = "Literature", Credits = 4,
DepartmentID = departments.Single( s => s.Name == "English").DepartmentID
},
};
foreach (Course c in courses)
{
context.Courses.Add(c);
}
context.SaveChanges();