本文共 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.EntityFrameworkCore
Microsoft.EntityFrameworkCore.Relational
此外,还需要添加以下核心组件:
Student
表,作为实体类。using System;using Microsoft.EntityFrameworkCore;namespace ContosoUniversity.Domain.Data{ public class SchoolContext : DbContext { public SchoolContext(DbContextOptionsoptions) : 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-alpha
Microsoft.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/