C# SqlSugar Code First

基类

namespace AssemblyLine.Helpers.SQL
{
    public class SqlBase
    {
        public virtual bool Open()
        {
            return false;
        }
    }
}

SqlServer帮助类

using InformationAcquisitionSystem.Helpers.SQL;
using Newtonsoft.Json;
using SqlSugar;
using System.ComponentModel;
using System.Linq;

namespace AssemblyLine.Helpers.SQL
{
    [JsonObject(MemberSerialization.OptIn)]
    public class DbHelperSqlServer : SqlBase
    {
        private SqlSugarScope _sqlSugarClient;
        private string _server;
        private string _database;
        private string _user;
        private string _password;

        [JsonProperty]
        [Category("连接属性"), DisplayName("服务器地址")]
        public string Server { get => _server; set => _server = value; }

        [JsonProperty]
        [Category("连接属性"), DisplayName("数据库名称")]
        public string Database { get => _database; set => _database = value; }

        [JsonProperty]
        [Category("连接属性"), DisplayName("数据库用户")]
        public string User { get => _user; set => _user = value; }

        [JsonProperty]
        [PasswordPropertyText(true)]
        [Category("连接属性"), DisplayName("数据库密码")]
        public string Password { get => _password; set => _password = value; }

        [Browsable(false)]
        public SqlSugarScope SqlSugarClient { get => _sqlSugarClient; set => _sqlSugarClient = value; }

        public override bool Open()
        {
            try
            {
                _sqlSugarClient = new SqlSugarScope(new ConnectionConfig
                {
                    // 连接超时3S
                    ConnectionString = $"server={_server};Initial Catalog={_database};uid={_user};pwd={_password};",
                    DbType = DbType.SqlServer,
                    IsAutoCloseConnection = false,
                    InitKeyType = InitKeyType.Attribute
                });

                _sqlSugarClient.Open();

                _sqlSugarClient.Aop.OnLogExecuting = (sql, pars) =>
                {
                    //Console.WriteLine(sql); // 输出sql
                };

                // Code First:可以指定表格类所在的命名空间,然后判断数据库中是否存在该表,不存在则自动创建
                string tableNamespace = "AssemblyLine.Models.Tables";
                foreach (var type in GetType().Assembly.GetTypes().Where(c =>
                             c.Namespace != null && c.IsClass && c.IsPublic &&
                             c.Namespace.Equals(tableNamespace)))
                {
                    if (_sqlSugarClient.DbMaintenance.GetTableInfoList(false).Any(c => c.Name.Equals(type.Name)))
                        continue;

                    _sqlSugarClient.CodeFirst.SetStringDefaultLength(200).InitTables(type);
                }

                return true;
            }
            catch
            {
                return false;
            }
        }
    }
}

使用

DbHelperSqlServer sqlServer = new DbHelperSqlServer()
{
    Server = "127.0.0.1",
    Database = "CoreyV2",
    User = "sa",
    Password = "asrs,123"
};
if (!sqlServer.Open()) throw new Exception("数据库连接失败");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值