src/sample/XXX.Plugin.FreeSql/FreeSqlStartup.cs

(开头部分) 3KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using FreeSql;
using MySql.Data.MySqlClient;
using System.Data.SQLite;
using System.Text.RegularExpressions;
using DataType = FreeSql.DataType;

namespace XXX.Plugin.FreeSql
{
    public class FreeSqlStartup : INetProStartup
    {
        public double Order { get; set; } = int.MaxValue;

        /// <summary>
        /// 
        /// </summary>
        /// <param name="services"></param>
        /// <param name="configuration"></param>
        /// <param name="typeFinder"></param>
        public void ConfigureServices(IServiceCollection services, IConfiguration configuration = null, ITypeFinder typeFinder = null)
        {
            #region Freesql初始化
            //多数据库初始化
            var idleBus = new IdleBus<IFreeSql>(TimeSpan.FromSeconds(60));

            //reference:https://github.com/dotnetcore/FreeSql/issues/44
            //第一个注册的实例是默认实例,使用时如没指定dbkey则默认连接此处第一个注册的数据库实例
            idleBus.Register("sqlite", () =>
            {
                var sqlConnectionString = configuration.GetConnectionString("SqliteConnection");

                using (var connection = new SQLiteConnection(sqlConnectionString))// "Data Source=LocalizationRecords.sqlite"
                {
                    connection.Open();  //  <== The database file is created here.
                }
                return new FreeSqlBuilder()
             .UseConnectionString(DataType.Sqlite, sqlConnectionString)
             .UseAutoSyncStructure(true) //true:自动同步实体结构到数据库;false:默认不迁移数据
             .Build();
            });
            idleBus.Register("mysql", () =>
            {
                var mysqlConnection = configuration.GetConnectionString("MysqlConnection");

                using (var connection = new MySqlConnection(mysqlConnection.Replace("Database=netpro_microservice_demo;", "").Replace("database=netpro_microservice_demo;", "")))// "Data Source=LocalizationRecords.sqlite"
                {
                    bool valid = true;
                    try
                    {
                        connection.Open();
                    }
                    catch (Exception ex)
                    {
                        valid = false;
                        Console.WriteLine($"mysql连接错误--{ex.Message}");
                    }
                    if (valid)
                    {
                        using var cmd = new MySqlCommand(@$"Create Database If Not Exists {_getvaluebyConnectstring(mysqlConnection, "Database")} Character Set UTF8", connection);
                        cmd.ExecuteScalar();

后面还有 33 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。