本文共 3810 字,大约阅读时间需要 12 分钟。
在搭建 .NET Core 项目时,特别是结合 MySQL 数据库和 Entity Framework Core 的使用,需要进行一系列配置和优化。以下是基于 Visual Studio 2017 RC 的详细步骤说明。
首先,需要创建一个清晰的项目文件夹结构,按照功能层次划分。具体分为以下四个解决方案文件夹:
在每个解决方案文件夹中,需要创建对应的项目:
项目之间的引用关系需要注意:
ContosoUniversity.WebAdmin 依赖于 ContosoUniversity.Application、ContosoUniversity.Domain。ContosoUniversity.Application 依赖于 ContosoUniversity.Repository、ContosoUniversity.Domain。ContosoUniversity.Repository 依赖于 ContosoUniversity.Domain。ContosoUniversity.Domain 不直接依赖任何项目。在 ContosoUniversity.Domain 项目中,需要添加必要的 NuGet 包:
Microsoft.EntityFrameworkCoreMicrosoft.EntityFrameworkCore.Relational此外,还需要添加以下核心组件:
Student 表,作为实体类。using System;using Microsoft.EntityFrameworkCore;namespace ContosoUniversity.Domain.Data{ public class SchoolContext : DbContext { public SchoolContext(DbContextOptions options) : base(options) { } public DbSet Students { get; set; } protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity ().ToTable("Student"); } }} using System;using System.Linq;namespace ContosoUniversity.Domain.Data{ public static class DbInitializer { public static void Initialize(SchoolContext context) { context.Database.EnsureCreated(); if (context.Students.Any()) { return; } var students = new Student[] { new Student { FirstMidName = "Carson", LastName = "Alexander", EnrollmentDate = DateTime.Parse("2005-09-01") }, // 其他测试数据 }; foreach (Student s in students) { context.Students.Add(s); } context.SaveChanges(); } }} 在 ContosoUniversity.WebAdmin 项目中,需要进行以下配置:
appsettings.json 文件中配置数据库连接。"ConnectionStrings": { "DefaultConnection": "server=xxx;user id=xxx;password=xxx;database=ContosoUniversity;"} MySql.Data.EntityFrameworkCore 6.10.0-alphaMicrosoft.EntityFrameworkCore.Tools 1.1.0-preview4-final.csproj 文件中添加 CLI 工具:netcoreapp2.0 2.0.0-rc.1-03158f9 false
Startup.cs 中的 ConfigureServices 方法中添加数据库配置。public void ConfigureServices(IServiceCollection services){ services.AddDbContext ( options => options.UseMySQL( Configuration.GetConnectionString("DefaultConnection"), b => b.MigrationsAssembly("ContosoUniversity.WebAdmin") ) ); services.AddMvc();} Configure 方法中添加初始化代码。public void Configure( IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, SchoolContext context){ // 其他配置代码... DbInitializer.Initialize(context);} dotnet ef 命令进行 migrations,确保数据库状态一致。通过以上步骤,可以在 Visual Studio 2017 RC 中成功搭建并配置 .NET Core 项目,结合 MySQL 数据库和 Entity Framework Core 进行开发。
转载地址:http://odgfk.baihongyu.com/