CSFramework.EF数据库框架应用Schema测试多种数据库(.NET8+EFCore)
CSFramework.EF数据库框架应用Schema测试多种数据库(.NET8+EFCore)
测试场景
- CSFramework.EF数据库框架V3
- EFCore+.NET8
- 一个程序实例化多个DbContext
- 同时测试多种数据库(SqlServer、MySql、Oracle、达梦)
- 每种数据库构造两个IDatabase实例连接2个数据库名
测试源码
C# 全选
private void btnMultiDBTest_Click(object sender, EventArgs e)
{
if (true) //测试SqlServer数据库
{
ShowResult(">>>>>>测试SqlServer数据库");
var connStr1 = "Server=192.168.0.5;Database=CSFramework_WebAPI_V3;User ID=;Password=123; Max Pool Size=512; Pooling=true;TrustServerCertificate=true;";
var connStr2 = "Server=192.168.0.5;Database=CSFramework_WebAPI_V3_Log;User ID=;Password=123; Max Pool Size=512; Pooling=true;TrustServerCertificate=true;";
//创建2个IDatabase实例
var db1 = DatabaseFactory.GetDatabase(DatabaseType.SqlServer, connStr1);
var db2 = DatabaseFactory.GetDatabase(DatabaseType.SqlServer, connStr2);
Test1(db1);
Test2(db2);
}
if (true) //测试MySql数据库
{
ShowResult(">>>>>>测试MySql数据库");
var connStr1 = "Server=192.168.0.5;Database=CSFramework_WebAPI_V3;User ID=root;Password=123; Max Pool Size=512; Pooling=true;Connect Timeout=30;sslmode=none;Charset=utf8;Pooling=true;Min Pool Size=0;Max Pool Size=500;Connection Lifetime=0;Convert Zero Datetime=True;AllowLoadLocalInfile=true;AllowPublicKeyRetrieval=True;";
var connStr2 = "Server=192.168.0.5;Database=CSFramework_WebAPI_V3_Log;User ID=root;Password=123; Max Pool Size=512; Pooling=true;Connect Timeout=30;sslmode=none;Charset=utf8;Pooling=true;Min Pool Size=0;Max Pool Size=500;Connection Lifetime=0;Convert Zero Datetime=True;AllowLoadLocalInfile=true;AllowPublicKeyRetrieval=True;";
//创建2个IDatabase实例
var db1 = DatabaseFactory.GetDatabase(DatabaseType.MySql, connStr1);
var db2 = DatabaseFactory.GetDatabase(DatabaseType.MySql, connStr2);
Test1(db1);
Test2(db2);
}
if (true)//测试达梦数据库
{
ShowResult(">>>>>>测试达梦数据库");
var connStr = "Server=localhost;Port=5236;User Id=SYSDBA;Password=123;";
//创建2个IDatabase实例
var db1 = DatabaseFactory.GetDatabase(DatabaseType.DaMeng, connStr, "CSFramework_WebAPI_V3");
var db2 = DatabaseFactory.GetDatabase(DatabaseType.DaMeng, connStr, "CSFramework_WebAPI_V3_Log");
Test1(db1);
Test2(db2);
}
if (true)//测试Oracle数据库
{
ShowResult(">>>>>>测试Oracle数据库");
var connStr1 = "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.5)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=CSFramework_WebAPI_V3)));User Id=user01;Password=123;";
var connStr2 = "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.5)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=CSFramework_WebAPI_V3_Log)));User Id=user01;Password=123;";
//创建2个IDatabase实例
var db1 = DatabaseFactory.GetDatabase(DatabaseType.Oracle, connStr1);
var db2 = DatabaseFactory.GetDatabase(DatabaseType.Oracle, connStr2);
Test1(db1);
Test2(db2);
}
}
C# 全选
//CSFramework_WebAPI_V3库
private void Test1(IDatabase db)
{
//测试查询用户表
var q1 = db.GetQueryable<Api_User>();
var user = q1.OrderByDescending(o => o.LastLoginTime).FirstOrDefault();
ShowResult("用户->" + user?.Account + "-" + user?.UserName);
}
C# 全选
//CSFramework_WebAPI_V3_Log库
private void Test2(IDatabase db)
{
//测试查询日志表
var q2 = db.GetQueryable<sys_Log_ApiVistior>();
var log = q2.Where(w => !String.IsNullOrEmpty(w.LogContent)).FirstOrDefault();
ShowResult("日志->" + log?.LogContent);
}
测试结果
测试程序截图
测试结论
测试成功!
一个程序实例,测试四种不同的数据库(SqlServer、MySql、Oracle、达梦),达梦库测试2个Schema,实例化多个DbContext。
CSFramework.EF多数据库框架
CSFramework.EF是轻量级数据库底层框架,基于Entity Framework 实体框架强大功能封装而成。支持三种主流数据库,分别是SqlServer、Oracle、MySQL,支持国产数据库 - 达梦数据库,用户可扩展其他数据如 PostgreSQL,MongoDB,SQLLite等。
CSFramework.EF数据库框架提供IDatabase接口,里面定义了一组通用的接口方法,如增、删、改、查:Add<T>, Update<T>,Remove<T>,GetQuaryable<T>,支持LINQ,SQL脚本查询和操作,支持常用事务、BulkInsert批量插入等功能。
软件介绍:https://www.cscode.net/archive/csframework.ef/363596745297925.html
版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
NewDoc C/S框架网