第1章 获取数据库中的数据

    CoreShop源程序是以数据库优先进行定义的,所以其本身不包含代码优先的定义,但本从更习惯于代码优先,所以为其定义了代码优先的定义。

1 CoreCms.Net.Model.Entities.SysRole

using SqlSugar;

using System.ComponentModel.DataAnnotations;

namespace CoreCms.Net.Model.Entities

{

    /// <summary>

    /// 【系统角色--类】

    /// <remarks>

    /// 摘要:

    ///     通过该实体类及其属性成员,用于实现当前程序【CoreCms.Net.Model.【实体集】.SysRole】实体与“[CoreShop230628].[SysRole]”表之间的CURD的交互操作,并把这些数据存储到数据库设置实例中(内存)

    /// </remarks>

    /// </summary>

    [SugarTable("SysRole", TableDescription = "角色表")]

    public class SysRole

    {

        /// <summary>

        /// 【角色编号】

        /// <remarks>

        /// 摘要:

        ///     获取/设置系统角色实体1个指定实例的整型编号值。

        /// IsPrimaryKey:主键

        /// IsIdentit:自增

        /// </remarks>

        /// </summary>

        [Display(Name = "角色编号")]

        [SugarColumn(ColumnDescription = "角色编号", IsPrimaryKey = true, IsIdentity = true)]

        [Required(ErrorMessage = "请输入{0}")]

        public int Id { get; set; }

        /// <summary>

        /// 【角色名称】

        /// <remarks>

        /// 摘要:

        ///     获取/设置1个指定系统角色的名称。

        /// </remarks>

        /// </summary>

        [Display(Name = "角色名称")]

        [SugarColumn(ColumnDescription = "角色名称", ColumnDataType = "nvarchar", Length = 50)]

        [Required(ErrorMessage = "请输入{0}")]

        [StringLength(50, ErrorMessage = "{0}】不能超过{1}字符长度")]

        public string RoleName { get; set; }

        /// <summary>

        /// 【角色名称】

        /// <remarks>

        /// 摘要:

        ///     获取/设置1个指定系统角色的标识。

        /// </remarks>

        /// </summary>

        [Display(Name = "角色标识")]

        [SugarColumn(ColumnDescription = "角色标识", ColumnDataType = "nvarchar", Length = 50, IsNullable = true)]

        [StringLength(50, ErrorMessage = "{0}】不能超过{1}字符长度")]

        public string RoleCode { get; set; }

        /// <summary>

        /// 【角色名称】

        /// <remarks>

        /// 摘要:

        ///     获取/设置1个指定系统角色的备注。

        /// </remarks>

        /// </summary>

        [Display(Name = "备注")]

        [SugarColumn(ColumnDescription = "备注",  ColumnDataType = "nvarchar", Length = 255, IsNullable = true)]

        [StringLength(255, ErrorMessage = "{0}】不能超过{1}字符长度")]

        public string Comments { get; set; }

        /// <summary>

        /// 【逻辑删除?】

        /// <remarks>

        /// 摘要:

        ///     获取/设置1个值false(可用=0)/true(已经被逻辑删除=1),该值指示系统角色实体的1个指定实例是否已经处于逻辑删除状态。

        /// </remarks>

        /// </summary>

        [Display(Name = "是否删除,0,1")]

        [SugarColumn(ColumnDescription = "是否删除,0,1")]

        [Required(ErrorMessage = "请输入{0}")]

        public bool Deleted { get; set; }

        /// <summary>

        /// 【创建时间】

        /// <remarks>

        /// 摘要:

        ///     获取/设置系统角色实体1个指定实例第1次被持久化到系统角色表中的时间。

        /// </remarks>

        /// </summary>

        [Display(Name = "创建时间")]

        [SugarColumn(ColumnDescription = "创建时间")]

        [Required(ErrorMessage = "请输入{0}")]

        public DateTime CreateTime { get; set; }

        /// <summary>

        /// 【修改时间】

        /// <remarks>

        /// 摘要:

        ///     获取/设置系统角色1个指定实例最后1次被修改后,持久化到系统角色表中的时间。

        /// </remarks>

        /// </summary>

        [Display(Name = "修改时间")]

        [SugarColumn(ColumnDescription = "修改时间")]

        public DateTime UpdateTime { get; set; }

    }

}

2 CoreCms.Net.Model.Entities.SysUser

using SqlSugar;

using System.ComponentModel.DataAnnotations;

namespace CoreCms.Net.Model.Entities

{

    /// <summary>

    /// 【系统用户--类】

    /// <remarks>

    /// 摘要:

    ///     通过该实体类及其属性成员,用于实现当前程序【CoreCms.Net.Model.【实体集】.SysUser】实体与“[CoreShop230628].[SysUser]”表之间的CURD的交互操作,并把这些数据存储到数据库设置实例中(内存)

    /// </remarks>

    /// </summary>

    [SugarTable("SysUser", TableDescription = "用户表")]

    public partial class SysUser

    {

        /// <summary>

        /// 【系统用户色编号】

        /// <remarks>

        /// 摘要:

        ///     获取/设置系统角色实体1个指定实例的整型编号值。

        /// IsPrimaryKey:主键

        /// IsIdentit:自增

        /// </remarks>

        /// </summary>

        [Display(Name = "用户id")]

        [SugarColumn(ColumnDescription = "用户id", IsPrimaryKey = true, IsIdentity = true)]

        [Required(ErrorMessage = "请输入{0}")]

        public int Id { get; set; }

        /// <summary>

        /// 【账号】

        /// <remarks>

        /// 摘要:

        ///     获取/设置1个指定系统用户的账号名称。

        /// </remarks>

        /// </summary>

        [Display(Name = "账号")]

        [SugarColumn(ColumnDescription = "账号", ColumnDataType = "nvarchar", Length = 50, IsNullable = true)]

        [StringLength(50, ErrorMessage = "{0}】不能超过{1}字符长度")]

        public string UserName { get; set; }

        /// <summary>

        /// 【密码】

        /// <remarks>

        /// 摘要:

        ///     获取/设置1个指定系统用户的登录密码。

        /// </remarks>

        /// </summary>

        [Display(Name = "密码")]

        [SugarColumn(ColumnDescription = "密码", ColumnDataType = "nvarchar", Length = 100, IsNullable = true)]

        [StringLength(100, ErrorMessage = "{0}】不能超过{1}字符长度")]

        public string PassWord { get; set; }

        /// <summary>

        /// 【昵称】

        /// <remarks>

        /// 摘要:

        ///     获取/设置1个指定系统用户的昵称。

        /// </remarks>

        /// </summary>

        [Display(Name = "昵称")]

        [SugarColumn(ColumnDescription = "昵称", ColumnDataType = "nvarchar", Length = 50, IsNullable = true)]

        [StringLength(50, ErrorMessage = "{0}】不能超过{1}字符长度")]

        public string NickName { get; set; }

        /// <summary>

        /// 【昵称】

        /// <remarks>

        /// 摘要:

        ///     获取/设置1个指定系统用户的头像。

        /// 说明:

        ///     该属性通过网络格式的绝/相对路径来映射用户头像图片。

        /// </remarks>

        /// </summary>

        [Display(Name = "头像")]

        [SugarColumn(ColumnDescription = "头像", ColumnDataType = "nvarchar", Length = 255, IsNullable = true)]

        [StringLength(255, ErrorMessage = "{0}】不能超过{1}字符长度")]

        public string Avatar { get; set; }

        /// <summary>

        /// 【性别】

        /// <remarks>

        /// 摘要:

        ///     获取/设置1个指定系统用户的性别。

        /// </remarks>

        /// </summary>

        [Display(Name = "性别")]

        [SugarColumn(ColumnDescription = "性别")]

        [Required(ErrorMessage = "请输入{0}")]

        public int Sex { get; set; }

        /// <summary>

        /// 【手机号】

        /// <remarks>

        /// 摘要:

        ///     获取/设置1个指定系统用户的手机号。

        /// </remarks>

        /// </summary>

        [Display(Name = "手机号")]

        [SugarColumn(ColumnDescription = "手机号", ColumnDataType = "nvarchar", Length = 50, IsNullable = true)]

        [StringLength(50, ErrorMessage = "{0}】不能超过{1}字符长度")]

        public string Phone { get; set; }

        /// <summary>

        /// 【邮箱】

        /// <remarks>

        /// 摘要:

        ///     获取/设置1个指定系统用户的邮箱。

        /// </remarks>

        /// </summary>

        [Display(Name = "邮箱")]

        [SugarColumn(ColumnDescription = "邮箱", ColumnDataType = "nvarchar", Length = 50, IsNullable = true)]

        [StringLength(50, ErrorMessage = "{0}】不能超过{1}字符长度")]

        public string Email { get; set; }

        /// <summary>

        /// 【邮箱验证?】

        /// <remarks>

        /// 摘要:

        ///     获取/设置1个值false(不需要)/true(需要),该值指示1个指定系统用户是否需要在邮箱验证操作后才能执行登录操作。

        /// </remarks>

        /// </summary>

        [Display(Name = "邮箱是否验证")]

        [SugarColumn(ColumnDescription = "邮箱是否验证")]

        [Required(ErrorMessage = "请输入{0}")]

        public bool EmailVerified { get; set; }

        /// <summary>

        /// 【实名】

        /// <remarks>

        /// 摘要:

        ///     获取/设置1个指定系统用户的实名。

        /// </remarks>

        /// </summary>

        [Display(Name = "真实姓名")]

        [SugarColumn(ColumnDescription = "真实姓名", ColumnDataType = "nvarchar", Length = 50, IsNullable = true)]

        [StringLength(50, ErrorMessage = "{0}】不能超过{1}字符长度")]

        public string TrueName { get; set; }

        /// <summary>

        /// 【身份证号】

        /// <remarks>

        /// 摘要:

        ///     获取/设置1个指定系统用户的身份证号。

        /// </remarks>

        /// </summary>

        [Display(Name = "身份证号")]

        [SugarColumn(ColumnDescription = "身份证号", ColumnDataType = "nvarchar", Length = 50, IsNullable = true)]

        [StringLength(50, ErrorMessage = "{0}】不能超过{1}字符长度")]

        public string IdCard { get; set; }

        /// <summary>

        /// 【出生日期】

        /// <remarks>

        /// 摘要:

        ///     获取/设置1个指定系统用户的生日。

        /// </remarks>

        /// </summary>

        [Display(Name = "出生日期")]

        [SugarColumn(ColumnDescription = "出生日期", IsNullable = true)]

        public DateTime? Birthday { get; set; }

        /// <summary>

        /// 【个人简介】

        /// <remarks>

        /// 摘要:

        ///     获取/设置1个指定系统用户的个人简介。

        /// </remarks>

        /// </summary>

        [Display(Name = "个人简介")]

        [SugarColumn(ColumnDescription = "个人简介", ColumnDataType = "nvarchar", Length = 500, IsNullable = true)]

        [StringLength(500, ErrorMessage = "{0}】不能超过{1}字符长度")]

        public string Introduction { get; set; }

        /// <summary>

        /// 【机构编号】

        /// <remarks>

        /// 摘要:

        ///     获取/设置1个指定系统用户的机构编号。

        /// </remarks>

        /// </summary>

        [Display(Name = "机构id")]

        [SugarColumn(ColumnDescription = "机构id", IsNullable = true)]

        public int? OrganizationId { get; set; }

        /// <summary>

        /// 【状态】

        /// <remarks>

        /// 摘要:

        ///     获取/设置1个值0(正常)/1 (冻结),该值指示1个指定系统用户是否需要在邮箱验证操作后才能执行登录操作。

        /// </remarks>

        /// </summary>

        [Display(Name = "状态,0正常,1冻结")]

        [SugarColumn(ColumnDescription = "状态,0正常,1冻结")]

        [Required(ErrorMessage = "请输入{0}")]

        public int State { get; set; }

        /// <summary>

        /// 【逻辑删除?】

        /// <remarks>

        /// 摘要:

        ///     获取/设置1个值false(可用=0)/true(已经被逻辑删除=1),该值指示系统用户实体的1个指定实例是否已经处于逻辑删除状态。

        /// </remarks>

        /// </summary>

        [Display(Name = "是否删除,0,1")]

        [SugarColumn(ColumnDescription = "是否删除,0,1")]

        [Required(ErrorMessage = "请输入{0}")]

        public bool Deleted { get; set; }

        /// <summary>

        /// 【注册时间】

        /// <remarks>

        /// 摘要:

        ///     获取/设置系统用户实体1个指定实例第1次被持久化到系统用户表中的时间。

        /// </remarks>

        /// </summary>

        [Display(Name = "注册时间")]

        [SugarColumn(ColumnDescription = "注册时间")]

        [Required(ErrorMessage = "请输入{0}")]

        public DateTime CreateTime { get; set; }

        /// <summary>

        /// 【修改时间】

        /// <remarks>

        /// 摘要:

        ///     获取/设置系统用户1个指定实例最后1次被修改后,持久化到系统角色表中的时间。

        /// </remarks>

        /// </summary>

        [Display(Name = "修改时间")]

        [SugarColumn(ColumnDescription = "修改时间", IsNullable = true)]

        public DateTime UpdateTime { get; set; }

    }

}

3 CoreCms.Net.Core.Config.SqlSugarSetup

using Microsoft.Extensions.DependencyInjection;

using SqlSugar;

using SqlSugar.IOC;                  

using System.Reflection;

namespace CoreCms.Net.Core.Config

{

    /// <summary>

    /// SqlSugarCore中间件启动--类】

    /// <remarks>

    /// 摘要:

    ///     通过该类中的方法成员,把SqlSugarCore中间件依赖注入到.Net(Core)框架内置依赖注入容器中。

    /// </remarks>

    /// </summary>

    public static class SqlSugarSetup

    {

        /// <param name="services">.Net(Core)框架内置依赖注入容器实例。</param>

        /// <summary>

        /// 【配置服务】

        /// <remarks>

        /// 摘要:

        ///     通过该方法成员,把SqlSugarCore中间件依赖注入到.Net(Core)框架内置依赖注入容器中。。

        /// </remarks>

        /// </summary>

        public static void AddSqlSugarSetup(this IServiceCollection services)

        {

            if (services == null) throw new ArgumentNullException(nameof(services));

            //注入 ORM

            SugarIocServices.AddSqlSugar(new IocConfig()

            {

                //数据库连接

                /*ConnectionString = AppSettingsConstVars.DbSqlConnection,

                //判断数据库类型

                DbType = AppSettingsConstVars.DbDbType == IocDbType.MySql.ToString() ? IocDbType.MySql : IocDbType.SqlServer,*/

                ConnectionString = "Server=.;uid=zz;pwd=zz;Database=CoreShop230628;MultipleActiveResultSets=true;pooling=true;min pool size=5;max pool size=32767;connect timeout=20;Encrypt=True;TrustServerCertificate=True;",

                DbType = IocDbType.SqlServer,

                //是否开启自动关闭数据库连接-//不设成true要手动close

                IsAutoCloseConnection = true,

            });

            //设置参数

            services.ConfigurationSugar(db =>

            {

                db.CurrentConnectionConfig.InitKeyType = InitKeyType.Attribute;

                //说明:CoreShop的程序是数据库优先,即必须先生成指定的数据库,本人更为喜欢代码优先所以进行了以下定义来实现代码优先。

                //如果指定的数据库软件中不存在指定的数据库,则自动生成该数据库。

                db.DbMaintenance.CreateDatabase();

                //通过反射操作,获取领域文件夹中的所有实体的类型实例。

                //直接获取指定项目中所有类的类型实例。

                Assembly assembly = Assembly.Load("CoreCms.Net.Model");

                //通过过滤操作,获取领域文件夹中的所有实体的类型实例。

                //注意:“Where”过滤操作中“ c.Namespace”最好使用“Contains”,而不要使用“==”

                Type[] _typeArray = assembly.GetTypes()

                    .Where(c => c.Namespace.Contains("CoreCms.Net.Model.Entities") && c.IsClass)//过滤操作。

                    .ToArray();

                //如果数据库软件对自动生成的数据库支持自动备份操作,则通过下行语句在自动生成该数据库中,根据当前项目中的实体类自动生成相应的表。

                //注意:SetStringDefaultLength(stringDefaultLength)必须定义在下行语句中,否则在自动生成表时,该约束定义将不会被映射到表的字段上。

                db.CodeFirst.SetStringDefaultLength(50).BackupTable().InitTables(_typeArray);

            });

        }

    }

}

4 Program.cs

using CoreCms.Net.Core.Config;

var builder = WebApplication.CreateBuilder(args);

//添加数据库连接SqlSugar注入支持

builder.Services.AddSqlSugarSetup();

5 CoreCms.Net.Web.Admin.Controllers.SysRoleController

using Microsoft.AspNetCore.Mvc;

using System.ComponentModel;

using SqlSugar;

using SqlSugar.IOC;

using CoreCms.Net.Model.Entities;

namespace CoreCms.Net.Web.Admin.Controllers

{

    [ApiController]

    [Route("[controller]/[action]")]

    public class SysRoleController : ControllerBase

    {

      private readonly ISqlSugarClient _sqlSugarClient;

        private ISqlSugarClient DbBaseClient;

        public SysRoleController()

        {

            _sqlSugarClient = DbScoped.SugarScope;

        }

        private SqlSugarScope GetDbClient()

        {

            // 必须要as,后边会用到切换数据库操作

            return _sqlSugarClient as SqlSugarScope;

        }

        #region 获取列表============================================================

        [HttpPost]

        [Description("获取列表")]

        public async Task</*AdminUiCallBack*/ bool> GetPageList()

        {

            DbBaseClient = GetDbClient();

          var v = await DbBaseClient

                .Queryable<SysRole>()

                .ToListAsync();

            return true;

        }

        #endregion

    }

}

 

对以上功能更为具体实现和注释见:230725_001CoreShop230628(获取数据库中的数据)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值