.NET Core1.1+VS2017RC+MySQL+EF搭建多层Web应用程序
Presentation:用于 UI 层面的项目,如 ASP.NET Core 应用程序。 Application:负责业务逻辑的实现。 Domain:定义数据模型和核心逻辑。 Infrastructure:负责基础设施配置,包括数据库和依赖组件。 添加 MySQL 连接字符串:在
发布日期:2025-06-19 12:44:19
浏览次数:4
分类:精选文章
本文共 3810 字,大约阅读时间需要 12 分钟。
.NET Core + MySQL + Entity Framework Core 在 Visual Studio 2017 RC 中的项目搭建与配置
在搭建 .NET Core 项目时,特别是结合 MySQL 数据库和 Entity Framework Core 的使用,需要进行一系列配置和优化。以下是基于 Visual Studio 2017 RC 的详细步骤说明。
一、项目文件夹结构
首先,需要创建一个清晰的项目文件夹结构,按照功能层次划分。具体分为以下四个解决方案文件夹:
二、解决方案文件夹中的项目创建
在每个解决方案文件夹中,需要创建对应的项目:
- ContosoUniversity.WebAdmin:作为前端应用程序,负责展示和交互。
- ContosoUniversity.Application:作为业务逻辑层,负责服务和逻辑处理。
- ContosoUniversity.Repository:作为数据访问层,负责数据库交互。
- ContosoUniversity.Domain:作为数据模型和上下文层。
项目之间的引用关系需要注意:
ContosoUniversity.WebAdmin依赖于ContosoUniversity.Application、ContosoUniversity.Domain。ContosoUniversity.Application依赖于ContosoUniversity.Repository、ContosoUniversity.Domain。ContosoUniversity.Repository依赖于ContosoUniversity.Domain。ContosoUniversity.Domain不直接依赖任何项目。
三、数据库与 Entity Framework 配置
在 ContosoUniversity.Domain 项目中,需要添加必要的 NuGet 包:
Microsoft.EntityFrameworkCoreMicrosoft.EntityFrameworkCore.Relational
此外,还需要添加以下核心组件:
- Student:对应数据库中的
Student表,作为实体类。 - SchoolContext:作为数据库上下文,用于执行 CRUD 操作和 migrations。
- DbInitializer:用于初始化数据库,并添加测试数据。
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(); } }} 四、WebAdmin 项目配置
在 ContosoUniversity.WebAdmin 项目中,需要进行以下配置:
appsettings.json 文件中配置数据库连接。"ConnectionStrings": { "DefaultConnection": "server=xxx;user id=xxx;password=xxx;database=ContosoUniversity;"} - 安装必要的 NuGet 包:
MySql.Data.EntityFrameworkCore 6.10.0-alphaMicrosoft.EntityFrameworkCore.Tools 1.1.0-preview4-final- 配置项目文件:在
.csproj文件中添加 CLI 工具: - 配置数据库上下文:在
Startup.cs中的ConfigureServices方法中添加数据库配置。 - 数据库初始化:在
Configure方法中添加初始化代码。 - 项目引用关系:确保每个项目正确引用所需的项目和 NuGet 包。
- Migrations 操作:通过
dotnet ef命令进行 migrations,确保数据库状态一致。 - 测试环境配置:确保 MySQL 服务已正确配置,防止因版本不兼容导致错误。
- 依赖管理:在安装或卸载 NuGet 包后,确保重启 Visual Studio,以获取最新的依赖项。
- MySQL 版本:请避免使用 MySQL 7.0.6-IR31,否则会出现存储引擎相关错误。
- 迁移配置:确保迁移工具路径正确,避免错误信息如 "No executable found matching command 'dotnet-ef'"。
netcoreapp2.0 2.0.0-rc.1-03158f9 false
public void ConfigureServices(IServiceCollection services){ services.AddDbContext ( options => options.UseMySQL( Configuration.GetConnectionString("DefaultConnection"), b => b.MigrationsAssembly("ContosoUniversity.WebAdmin") ) ); services.AddMvc();} public void Configure( IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, SchoolContext context){ // 其他配置代码... DbInitializer.Initialize(context);} 五、完整项目运行准备
注意事项
通过以上步骤,可以在 Visual Studio 2017 RC 中成功搭建并配置 .NET Core 项目,结合 MySQL 数据库和 Entity Framework Core 进行开发。
发表评论
最新留言
表示我来过!
[***.240.166.169]2026年06月02日 09时05分13秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
PHPCMS多文件上传和上传数量限制
2023-02-28
phpEnv的PHP集成环境
2023-02-28
PHPExcel一些基本设置总结
2023-02-28
PHPExcel导入导出 若在thinkPHP3.2中使用(无论实例还是静态调用(如new classname或classname::function)都必须加反斜杠,因3.2就命名空间,如/c...
2023-02-28
PHPMailer发送邮件
2023-02-28
phpmailer发送邮件,可以带附件
2023-02-28
phpmyadmin 安装
2023-02-28
phpmyadmin数据库建表及插入
2023-02-28
phprpc简单使用
2023-02-28
phpstorm中Xdebug的使用
2023-02-28
phpstorm中使用svn版本控制器
2023-02-28
phpstorm配置php脚本执行
2023-02-28
PhpStorm配置远程xdebug
2023-02-28
phpStudy安装教程
2023-02-28
phpunit
2023-02-28
phpWhois 项目推荐
2023-02-28
phpwind部署问题
2023-02-28
PHP__call __callStatic
2023-02-28
php一句话图片运行,【后端开发】php一句话图片木马怎么解析
2023-02-28
php上传文件找不到临时文件夹
2023-02-28