用asp.net核心及EF核心当我尝试种子有出了错
问题描述:
我startup.cs是用asp.net核心及EF核心当我尝试种子有出了错
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseBrowserLink();
}
else
{
app.UseExceptionHandler("/Home/Error");
}
app.UseStaticFiles();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
SeedData.Seed(app);
}
和我的种子类:
public static class SeedData
{
public static void Seed(IApplicationBuilder app)
{
var _dbContext= app.ApplicationServices.GetRequiredService<BlogDbContext>();
_dbContext.Database.EnsureDeleted();
_dbContext.Add<User>(new User { UserName = "Niko", Password ="123",EmailAddress="[email protected]",UserType= Models.User.Type.Visitor,RegistDate=System.DateTime.Now});
_dbContext.Add<Admin>(new Admin{EmailAddress="[email protected]",Password="123"});
_dbContext.SaveChanges();
}
}
当我的NuGet Update-Database
套餐管理:
在类'Program'上调用方法'BuildWebHost'时发生错误。没有应用服务提供商就继续。错误:无法解析根提供程序的范围服务'Blog.DAL.Context.BlogDbContext'。
和
无法创建“BlogDbContext”类型的对象。将“IDesignTimeDbContextFactory”的实现添加到项目中,或者在设计时查看https://go.microsoft.com/fwlink/?linkid=851728以获取支持的其他模式。
答
那么我通过观看文档来解决它,Asp.Net Core 1.x和2.0之间有一些不同,我只是应该在程序中写入种子方法。