src/Framework/Data/Db/Data.MySql/MySqlAdapter.cs

(开头部分) 10KB

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

using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Extensions.Logging;
using MySqlConnector;
using NetModular.Lib.Data.Abstractions;
using NetModular.Lib.Data.Abstractions.Entities;
using NetModular.Lib.Data.Abstractions.Enums;
using NetModular.Lib.Data.Abstractions.Options;
using NetModular.Lib.Data.Core;
using NetModular.Lib.Utils.Core.Helpers;

namespace NetModular.Lib.Data.MySql
{
    internal class MySqlAdapter : SqlAdapterAbstract
    {
        public MySqlAdapter(DbOptions dbOptions, DbModuleOptions options, ILoggerFactory loggerFactory) : base(dbOptions, options, loggerFactory?.CreateLogger<MySqlAdapter>())
        {
        }

        public override string Database => AppendQuote(Options.Database) + ".";

        public override SqlDialect SqlDialect => SqlDialect.MySql;

        /// <summary>
        /// 左引号
        /// </summary>
        public override char LeftQuote => '`';

        /// <summary>
        /// 右引号
        /// </summary>
        public override char RightQuote => '`';

        /// <summary>
        /// 获取最后新增ID语句
        /// </summary>
        public override string IdentitySql => "SELECT LAST_INSERT_ID() ID;";

        public override string FuncLength => "CHAR_LENGTH";
        public override string ConnectionStringBuild(string tableName = null)
        {
            if (tableName.IsNull() && Options.ConnectionString.NotNull())
                return Options.ConnectionString;

            Check.NotNull(DbOptions.Server, nameof(DbOptions.Server), "数据库服务器地址不能为空");
            Check.NotNull(DbOptions.UserId, nameof(DbOptions.UserId), "数据库用户名不能为空");
            Check.NotNull(DbOptions.Password, nameof(DbOptions.Password), "数据库密码不能为空");

            Options.Version = DbOptions.Version;

            #region ==SslMode==

            var sslModeStr = "None";
            if (Options.MySqlSslMode.NotNull())
            {
                sslModeStr = Options.MySqlSslMode;
            }
            else if (DbOptions.MySqlSslMode.NotNull())
            {
后面还有 278 行代码,解锁后查看完整代码

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

AI 解读

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

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