.NET Core1.1+VS2017RC+MySQL+EF搭建多层Web应用程序(2)

MySql版本不要选7.0.6-IR31,项目跑起来会报"MySql.Data.EntityFrameworkCore.Storage.Internal.MySQLCommandBuilderFactory..ctor(ISensitiveDataLogger<RelationalCommandBuilderFactory> logger, DiagnosticSource diagnosticSource, IRelationalTypeMapper typeMapper)"错误

.NET Core1.1+VS2017RC+MySQL+EF搭建多层Web应用程序

3.StartUp类ConfigureServices方法注入数据库上下文

public void ConfigureServices(IServiceCollection services) { services.AddDbContext<SchoolContext>(options => options.UseMySQL(Configuration.GetConnectionString("DefaultConnection"), b => b.MigrationsAssembly("ContosoUniversity.WebAdmin"))); // Add framework services. services.AddMvc(); }

注意,标红的代码不可缺少,否则EntityFramework无法执行Migrations,报错信息如下

.NET Core1.1+VS2017RC+MySQL+EF搭建多层Web应用程序

4.StartUp添加数据库初始化

改造Configure方法签名,添加SchoolContext参数

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, SchoolContext context)

Configure方法末尾添加数据库初始化代码

DbInitializer.Initialize(context);

 最后

把其余各层的代码都加上项目就可以跑起来了,通过Migrations操作维护开发库,.NET Core+MySQL+EF使用VS2017RC构建项目的坑基本就是这些了。。

注意

NuGet包Install或Uninstall命名执行后,查看VS2017RC中依赖的NuGet包发现没有变化(实际上已InstallUninstall,VS2017RC没有刷新),此时需要关闭解决方案重新打开,这时NuGet依赖才会刷新,这时VS2017RC的一个BUG!

s

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/079046c90ec38276646d2253aac03ad9.html