1.安装依赖包
实体项目添加nuget引用
Microsoft.EntityFrameworkCore ef包
Npgsql.EntityFrameworkCore.PostgreSQL PostgreSQL包(对应数据库安装对应包)
api项目添加nuget引用
Microsoft.EntityFrameworkCore.Tools ef工具包
2.添加实体 ,例:
!!!!生成数据库的时候实体类型记得限制字段长度及添加主键标识!!!!
注意Comment[] 标签生成表或数据库时为对应备注
/// <summary>
/// 用户表
/// </summary>
[SugarTable("srm_user")]
public class UserEntity : CommonEntity
{
/// <summary>
/// 唯一ID
/// </summary>
[SugarColumn(IsPrimaryKey = true, ColumnDescription = "唯一ID", ColumnName = "id")]
[Column("id")]
public string Id { get; set; }
/// <summary>
/// 姓名
/// </summary>
[SugarColumn(ColumnDescription = "姓名", ColumnName = "user_name")]
[Column("user_name")]
[Comment("姓名")]
public string UserName { get; set; }
}
3.实体项目中添加数据库上下文对象 BaseDbContext
public class BaseDbContext : DbContext
{
public BaseDbContext([NotNull] DbContextOptions options) : base(options)
{
}
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
string connectionStr = AppSettingsHelper.GetSetting("ConnectionString");
optionsBuilder.UseNpgsql(connectionStr);
base.OnConfiguring(optionsBuilder);
}
//每次新建表新增对应实体对象
public DbSet<UserEntity> User { get; set; }
}
4.API项目ConfigureServices中注入对应数据库上下文
//数据库上下文注入
services.AddDbContext<BaseDbContext>();
5.执行migration
打开视图>其他窗口>程序包管理控制台
当前启动项为api项目(安装ef工具包项目),程序包管理控制台默认项目为实体项目(上下文对象项目)
add-migration name(版本文件名称)
update-database 执行最新migration文件(可添加name执行对应版本文件)
Remove-Migration 回滚删除migration文件