JOC.EFCore使用


1、添加引用

项目中Nuget包 JOC.EFCore

2、添加表

表需要继承JOC.EFCore.Table.ITable接口

C# 全选
public class tb_user : JOC.EFCore.Table.ITable
{
	/// <summary>
	/// 账号
	/// </summary>
	public string Account { get; set; }
	/// <summary>
	/// 密码
	/// </summary>
	public string Password { get; set; }
	/// <summary>
	/// 姓名
	/// </summary>
	public string UserName { get; set; }
}

3、新建DbContext

C# 全选
public class BusinessDbContext : JOC.EFCore.JOCDbContext
{
	public BusinessDbContext(IJOCConfig config, ITenantService tenantService) : base(config, tenantService)
	{
	}
	public override void EntityTables(ModelBuilder modelBuilder)
	{
		// 加载当前程序集的表结构
		modelBuilder.EntityTables(this._Config, Assembly.GetExecutingAssembly());
	}
}

4、Startup.cs中注册数据库上下文

C# 全选
#region 设置DbContext
services.AddEFCoreJOC(config =>
{

	#region 注册数据源提供程序
	config.RegisterDataBase("SQLite", (optionsBuilder, conn) =>
	{
		optionsBuilder.UseSqlite(conn.ConnectionString);
	});
	#endregion

	#region 配置数据库连接
	// 系统数据库
	string connection = "Data Source=.\\data.db;Version=3;UseUTF16Encoding=True;";
	config.AddDataSource(new JocConnection("SQLite", "", connection));
	#endregion
});
#endregion

5、自动生成数据库迁移

C# 全选
public class DBMergeProvider : IDBMerge
{
	public void DoDBMigrate(IJOCConfig config, string tenant)
	{
		using (BusinessDbContext entities = new BusinessDbContext(config))
		{
			/*
			不过数据库model有改动的话需要先执行下 add-migrate xxx 命令,然后每次运行程序GetPendingMigrations()就会检测有无更新,有的话自动迁移。
		   GetPendingMigrations方法官方文档说明  https://docs.microsoft.com/zh-cn/dotnet/api/microsoft.entityframeworkcore.relationaldatabasefacadeextensions.getpendingmigrations?view=efcore-2.1
			*/
			if (entities.Database.GetPendingMigrations().Any())
			{
				entities.Database.Migrate();
			}
		}
	}
}

Startup.cs中初始化迁移

C# 全选
#region 数据库迁移
// 获取配置
var serviceProvider = services.BuildServiceProvider();
var config = serviceProvider.GetService<IJOCConfig>();
EFCore.DBMerge.IDBMerge dbMerges = JOC.EFCore.DBMerge.DBMergeProvider.GetDBMerge(Assembly.GetExecutingAssembly());

// 生成迁移
dbMerges.DoDBMigrate(config, "");
#endregion

 

 

版权声明:本文为YES开发框架网发布内容,转载请附上原文出处连接
张国生
上一篇:RabbitMQ服务器环境搭建方法(Windows)
下一篇:asp.net core mvc修改cshtml试图热加载动态更新
评论列表

发表评论

评论内容
昵称:
关联文章

JOC.EFCore使用
EFCore分组查询Group使用
EFCore数据库提供程序
EFCore官方扩展库
JOC快速开发平台,增加调试监听功能
EFCore DbContext扩展执行原生SQL查询对象集合
EFCore生成实体带上注释
EFCore链接数据库报错
JOC快速开发框架按方向复制填充单元格
JOC快速开发平台添加了水印设置
JOC.Framework 小程序uni-app添加全局水印
JOC快速开发框架 表格值改变更新合计
FastReport IIF语句使用
YESWEB使用iconfont图标库
C# 指针简单使用
附加属性的使用
依赖属性的使用
ssl-helper使用教程
Markdown最新使用说明
yesweb-ajax使用

联系我们
联系电话:15090125178(微信同号)
电子邮箱:garson_zhang@163.com
站长微信二维码
微信二维码