CSFramework.EF数据库框架应用Schema测试多种数据库(.NET8+EFCore)|C/S开发框架
作者:csframework|C/S框架网  发布日期:2024/11/14 22:54:35

CSFramework.EF数据库框架应用Schema测试多种数据库(.NET8+EFCore)|C/S开发框架

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);
        }

测试结果

测试程序截图

CSFramework.EF数据库框架应用Schema测试多种数据库(.NET8+EFCore)|C/S开发框架

CSFramework.EF数据库框架应用Schema测试多种数据库(.NET8+EFCore)|C/S开发框架

测试结论

测试成功!

一个程序实例,测试四种不同的数据库(SqlServer、MySql、Oracle、达梦),达梦库测试2个Schema,实例化多个DbContext。

CSFramework.EF多数据库框架

CSFramework.EF数据库框架应用Schema测试多种数据库(.NET8+EFCore)|C/S开发框架

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

C/S框架网|原创精神.创造价值.打造精品


扫一扫加作者微信
C/S框架网作者微信 C/S框架网|原创作品.质量保障.竭诚为您服务
上一篇 下一篇