900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > mysql asp.net core_基于 ASP.NET Core 2.0 WebAPI 后台框架搭建(2) - EF C

mysql asp.net core_基于 ASP.NET Core 2.0 WebAPI 后台框架搭建(2) - EF C

时间:2021-08-16 21:28:03

相关推荐

mysql asp.net core_基于 ASP.NET Core 2.0 WebAPI 后台框架搭建(2) - EF C

概述

上一章,我们简单的搭建了依赖注入的三层架构,但是,没有真正的使用,而我们现在就使用MySQL数据,基于 EF Core 的 DbFirst 进行框架搭建。

步骤

1.右击 Entity 项目,点击“管理NuGet程序包”

2.安装以下三个包

Microsoft.EntityFrameworkCore 安装版本:2.1.0

Microsoft.EntityFrameworkCore.Tools 安装版本:2.1.0

Pomelo.EntityFrameworkCore.MySql 安装版本:2.1.0-rc1-final,注意,由于当前这个最新稳定版还是2.0.1,如果安装了2.0.1,将会在数据库迁移中失败。因此应该在NuGet中勾选“包括预发行版”,安装最新的 2.1.0-rc1-final

安装完成后,如下图所示

3.在 Entity -> DataTable 文件夹下,添加 BaseEntity.cs ,注意,这里的属性值不按照平时的Pascal命名规则,而是采用数据库命名设计原则去命名,相见参考链接二。

public abstract classBaseEntity

{publicBaseEntity()

{

create_time=DateTime.Now;

}///

///DB版号,Mysql详情参考;/shanyou/p/6241612.html

///

//1714234055//Mysql不允许byte[]类型上标记TimeStamp/RowVersion,这里使用DateTime类型配合标记ConcurrencyCheck达到并发控制

[ConcurrencyCheck]public DateTime row_version { get; set; }///

///创建时间///

public DateTime create_time { get; set; }

}

BaseEntity

4.在 Entity -> DataTable 文件夹下,添加 DT_User.cs

public classDT_User : BaseEntity

{publicDT_User()

{

}

[DataMember]

[Key]public long user_id { get; set; }

[Required]

[MaxLength(50)]

[Description("用户名")]public string user_name { get; set; }

[Required]

[MaxLength(32)]

[Description("密码")]public string user_password { get; set; }

}

DT_User

5.在 Entity -> MyContext.cs 文件夹中,添加数据表

public classMyContext : DbContext

{public MyContext() : base()

{

}public MyContext(DbContextOptionsoptions)

:base(options)

{

}override protected voidOnConfiguring(DbContextOptionsBuilder optionsBuilder)

{base.OnConfiguring(optionsBuilder);

}#region 数据表

public DbSet DT_User { get; set; }#endregion}

MyContext

6.在 Bll -> Interfaces 文件夹下,添加接口 IDT_UserService.cs,可以注意到

public interface IDT_UserService : IBllService{///

///插入一个新对象///

///

DT_User Insert();///

///获取用户数据表///

///

IEnumerableGetList();

}

IDT_UserService

7.在 Bll -> Implements 文件夹下,添加类 DT_UserService.cs

public class DT_UserService : BllService, IDT_UserService

{///

///用于实例化父级///

///

public DT_UserService(IDalService dal) : base(dal)

{

}public IEnumerableGetList()

{return GetEntities(r => true);

}publicDT_User Insert()

{

DT_User user= newDT_User

{

user_name= "test-" + new Random().Next(10000),

user_password=DateTime.Now.ToString()

};return AddEntity(user, true);

}

}

DT_UserService

8.回到 Signup.cs 文件中,添加数据库注入依赖和业务类Service,以后每加一个业务类Service都必须在这里加入一个 services.AddTransient()

public classStartup

{publicStartup(IConfiguration configuration)

{

Configuration=configuration;

}public IConfiguration Configuration { get; }//This method gets called by the runtime. Use this method to add services to the container.

public voidConfigureServices(IServiceCollection services)

{//配置数据库实体依赖注入

services.AddDbContext(options => options.UseMySql(Configuration.GetConnectionString("MySqlConnection")));

DIRegister(services);

services.AddMvc();

}//配置依赖注入映射关系

public voidDIRegister(IServiceCollection services)

{

services.AddTransient(typeof(IDalService<>), typeof(DalService<>));

services.AddTransient(typeof(IDT_UserService), typeof(DT_UserService));

}//This method gets called by the runtime. Use this method to configure the HTTP request pipeline.

public voidConfigure(IApplicationBuilder app, IHostingEnvironment env)

{if(env.IsDevelopment())

{

app.UseDeveloperExceptionPage();

}

app.UseMvc();

}

}

Startup

9.在appsettings.json 下,添加MySQL数据库连接字符串

{"ConnectionStrings": {"MySqlConnection": "Server=localhost;database=loda_demo;uid=root;pwd=123456;"},"Logging": {"IncludeScopes": false,"Debug": {"LogLevel": {"Default": "Warning"}

},"Console": {"LogLevel": {"Default": "Warning"}

}

}

}

appsettings.json

10.数据库设计完成,可以进行迁移了,进入“程序包管理控制台”

11.注意在默认项目中,切换到 Entity 项目,在输入框输入:add-migration init_1 ,注意,这里的 init_1 只是当前迁移的名字,当下一次数据库重新设计后,例如在DT_User中添加一个user_age属性,需要重新迁移,那么就需要输入 add-migration init_2 ,必须跟之前的名字不一样,名字随意起,当提示 “To undo this action, use Remove-Migration.”时,代表迁移成功,可以看到项目下多了一些文件。

12.继续输入 update-database ,以下就是操作成功的提示,我们可以打开MySQL数据库查看是否已经更新成功了。

13.最后,在 api 中进行测试,在 ValuesController.cs 中添加如下代码

[Route("api/[controller]")]public classValuesController : Controller

{privateIDT_UserService _userService;publicValuesController(IDT_UserService userService)

{//依赖注入得到实例

_userService =userService;

}publicIActionResult Test()

{

_userService.Insert();returnOk(_userService.GetList().ToList());

}

}

ValuesController

14.运行程序,打开页面,得到结果,可以去数据库查看,也已经写入数据库了

15.最后附上框架文件图

OK,基于EF Core 的 MySQL数据库迁移项目就到此结束了,如果有其他业务,可以依照上述DT_User,DT_UserService,IDT_UserService中扩展,有了模拟的用户数据,我们就要开始考虑如何进行用户验证了。下一章,我们将介绍使用 JWT 进行身份验证。

原文:/loda7023link/p/9161834.html

mysql core_基于 Core 2.0 WebAPI 后台框架搭建(2) - EF Core (MySQL) CodeFirst 数据库迁移与依赖注入...

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。