大佬教程收集整理的这篇文章主要介绍了.net 5 没有用数据播种,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我的应用程序没有将数据播种到控制器中的数据库。 它会创建数据库,但不会播种数据。
[httpGet("NewDb/{dbname}")]
public voID CreateNewDb(string dbname)
{
var optionsBuilder = new DbContextoptionsBuilder<DataContext>()
.UseMysqL("server=localhost; user=username; password=password;database=" + dbname,new MysqLServerVersion(new Version(8,21)));
DataContext context = new DataContext(optionsBuilder.Options);
context.Database.Migrate();
// where seed is not seeding the database.
Seed.SeedRoles(context,_roleManager);
}
seed.cs 这是创建角色的地方
public static voID SeedRoles(DataContext context,RoleManager<Role> roleManager)
{
if (!context.Roles.Any())
{
//create roles
var roles = new List<Role>
{
new Role{name = "admin"},new Role{name = "Standard"},new Role{name = "Basic"}
};
foreach (var role in roles)
{
roleManager.CreateAsync(role).Wait();
}
}
}
试试这个
[HttpGet("NewDb/{dbName}")]
public async Task CreateNewDbAsync(string dbName,CancellationToken cancellationToken = default)
{
var optionsBuilder = new DbContextOptionsBuilder<DataContext>()
.UseMySql("server=localhost; user=username; password=password;database=" + dbName,new MySqlServerVersion(new Version(8,21)));
DataContext context = new DataContext(optionsBuilder.Options);
context.Database.Migrate();
// where seed is not seeding the database.
Seed.SeedRolesAsync(context,_roleManager,cancellationToken);
}
还有这个
public static async Task SeedRolesAsync(DataContext context,RoleManager<Role> roleManager,CancellationToken cancellationToken = default)
{
if (!context.Roles.Any())
{
//create roles
var roles = new List<Role>
{
new Role{Name = "Admin"},new Role{Name = "Standard"},new Role{Name = "Basic"}
};
foreach (var role in roles)
{
context.Add(role);
}
await context.SaveChangesAsync(cancellationToken);
}
}
但是我们对种子数据所做的是在上下文中执行以下操作。这将在您对数据库调用“迁移”时调用。
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Role>().HasData(Roles.Data);
}
public static class Roles
{
// Here is where we stubb out our data
public static List<Role> Data = new List<Role> {};
}
以上是大佬教程为你收集整理的.net 5 没有用数据播种全部内容,希望文章能够帮你解决.net 5 没有用数据播种所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。