属性不多,就ID、姓名、年龄、性别、创建日期,分别使用了字符串、整型、布尔型和日期类型,对一些常规性的属性做一下数据表属性对应测试。
创建数据库 添加数据库上下文在项目中添加DbContext目录,在目录中添加一个名为DmContext.cs的类作为达梦数据库上下文,具体代码如下:
using DmExample.Models; using Microsoft.EntityFrameworkCore; namespace DmExample.DbContext { /// <summary> /// 达梦数据库上下文 /// </summary> public class DmContext : Microsoft.EntityFrameworkCore.DbContext { /// <summary> /// 用户 /// </summary> public DbSet<User> Users { get; set; } public DmContext(DbContextOptions<DmContext> options) : base(options) { } protected override void OnModelCreating(ModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); modelBuilder.Entity<User>().ToTable("sys_user"); } } }如上代码所示,DmContext继承自Microsoft.EntityFrameworkCore.DbContext,添加了用户User的DbSet,重载OnModelCreating方法,将User模型与数据库的sys_user表建立映射关系,当然也可以不指定映射关系,在不指定的情况下,默认映射成Users数据表。目前我们还没创建数据库,数据库里也还没有这个数据表,接下来需要配置数据库连接。
配置数据库连接(1)添加数据库连接字符串
打开项目中的appsettings.json配置文件,添加数据库连接字符串,如下所示:
{ "Logging": { "LogLevel": { "Default": "Information", "Microsoft": "Warning", "Microsoft.Hosting.Lifetime": "Information" } }, "AllowedHosts": "*", "ConnectionStrings": { "DmExample": "Server=localhost;Database=DmExampleDB;User=SYSDBA;Password=111111;" } }我们在appsettings.json配置文件中添加了一个ConnectionStrings的配置项,用来设置数据库连接字符串,连接字符串命名为DmExample,字符串的格式同我们连接SqlServer类似,Server为数据库地址、Database为数据库名称、User和Password分别为连接数据库账号和密码,需要注意的一点是设置数据库地址的时候如果是本地地址,咱们往往习惯性地用Server=.来表示,但是达梦数据库不认识这种表示,会无法连接数据库,需要把点替换成localhost或127.0.0.1才行,这个注意一下。
(2)注册数据库上下文
完成数据库连接字符串的添加后,我们需要在Starup.cs类中对当前的数据库上下文进行注册,微软已经为我们提供上下文注册的中间件,只要调用它就可以了,具体代码如下:
public void ConfigureServices(IServiceCollection services) { services.AddControllersWithViews(); // 注册DbContext services.AddDbContext<DmContext>(options => options.UseDm(Configuration.GetConnectionString("DmExample"))); }如上代码所示,DmContext是咱们创建的达梦数据库上下文,DmExample是我们在appsettings.json配置文件中添加的数据库连接字符串,通过Configuration.GetConnectionString方法获取该数据库连接字符串。这里注意这个代码:options.UseDm,我们连接SqlServer数据库的时候是使用options.UseSqlServer,如果我们以后连接MySql数据库时是使用options.UseMySQL,使用不同的数据库需要对应的数据库驱动,UseDm就是由达梦数据库驱动提供的方法,至此数据库的连接我们已配置完成,接下来我们要创建数据库。
创建数据库数据库连接配置完成后,我们直接使用Visual Studio 2019的程序包管理器控制台,通过命令方式来创建数据库,首先输入如下命令(initDB是我们取的名字,没有强制规定):
add-migration 'initDB'The add-migration command is one of the key commands in code first migrations. When you make changes to your domain model and need them dded into your database you create a new migration. This is done with the Add-Migration command. In it’s simplest form you need only toprovide a migration name.
add-migration命令是code first migration中的关键命令之一。当您对领域域模型进行更改并需要将它们时添加到数据库中,您将创建一个新的迁移。这是通过Add-Migration命令完成的。用最简单的形式,你只需要提供迁移名称。
命令执行成功后会在当前的项目中创建Migrations目录, 在这个目录中我们发现有两个文件,其中一个文件由当前创建日期加上我们之前add 后面创建名字的一个记录20201002080053_initDB记录了此次更新的部分,由于我们是第一次初始化,所以里面记录了全部表结构内容,下次我们再次使用该命令做更新时,会再次添加新的记录文件,只记录更新部分;另一个名为 DmContextModelSnapshot的文件是 Migrations生成的IModel状态的快照的基类,里面记录了要生成db的内容。