使用Freesql同步数据库传T参数

using Test.Model;
using Ldt.SettingCenter.Core;
using LdtCommonFreeSql;
using LdtCommonFreeSql.Model;
using Microsoft.Extensions.Hosting;
using System;
using System.Collections.Generic;
using System.Reflection;
using System.Text;
using System.Threading;
using System.Threading.Tasks;

namespace Test
{
    public class FreeSqlTest : BackgroundService
    {
        private readonly FreesqlDb freesqlDb;
        private readonly ISettingCenter settingCenter;
        public FreeSqlTest(FreesqlDb freesqlDb, ISettingCenter settingCenter)
        {
            this.freesqlDb = freesqlDb;
            this.settingCenter = settingCenter;
        }
        protected override Task ExecuteAsync(CancellationToken stoppingToken)
        {
            var mysql171 = new ConnConfig { Dbtype = FreeSql.DataType.MySql, ConnectString = "Data Source=192.168.1.171;Port=3306;User ID=root;Password=abc@123; Initial Catalog=ldt_user_center;Charset=utf8; SslMode=none;Min pool size=1;Allow User Variables=True;" };
            var mssql109 = new ConnConfig { Dbtype = FreeSql.DataType.SqlServer, ConnectString = "Data Source=192.168.1.109;User Id=sa;Password=ldtlaw_123;Initial Catalog=ldt_user_center;Pooling=true;Min Pool Size=1" };
            //var t= freesqlDb.GetFreeSql("Ldt.ElementCenterCommon");
            //获取案件信息转换路径地址
            var model = settingCenter.GetApplicationInfo(LdtCommonUtil.SystemInfo.IsLinux() ? "CommonSettingLinux" : "CommonSetting");
            var freesql71 = freesqlDb.SelectDBType(mysql171);
            var freesq109 = freesqlDb.SelectDBType(mssql109);
            TestObj testObj171 = new TestObj();
            testObj171.freeSql1 = freesql71;
            TestObj testObj109 = new TestObj();
            testObj109.freeSql1 = freesq109;

            Type type = Assembly.Load("Test").GetType("Test.Model.SysDept");
            var ttt = testObj171.freeSql1.Select<SysDept>().ToList(p => p);

            MethodInfo mi = testObj171.GetType().GetMethod("Test").MakeGenericMethod(new Type[] { type });

            var t = mi.Invoke(testObj171, new object[] { $"dept_id='DI4C2'" }) as IEnumerable<dynamic>;
            foreach (var item in t)
            {
                freesq109.Insert(item).ExecuteAffrows();
            }
            return Task.CompletedTask;
        }
    }

    public class TestObj
    {
        public IFreeSql freeSql1;
        public object Test<T1>(string condition) where T1 : class, new()
        {
            return freeSql1.Select<T1>().Where(condition).ToList(p => p);
        }
    }
}
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值