using SqlSugar; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DB2CoreTest.CURD { public class CodeFirst { public static void Init() { // 获取新的数据库实例 var db = DbHelper.GetNewDb(); // 如果数据库不存在,则创建数据库 //db.DbMaintenance.CreateDatabase(); //实体类初始化表 db.CodeFirst.InitTables(); //实体类初始化表 db.CodeFirst.InitTables(); } public static void Insertable() { // 获取新的数据库实例 var db = DbHelper.GetNewDb(); //插入用户 var userId = db.Insertable(new UserInfo() { Context = "Context", Email = "dfafa@qq.com", Price = Convert.ToDecimal(1.1), UserName = "admin", RegistrationDate = DateTime.Now, }).ExecuteReturnIdentity(); //插入用户登录 var loginId = db.Insertable(new UserLogins() { LoginTime = DateTime.Now, UserId = userId, }).ExecuteReturnIdentity(); } public static void Queryable() { // 获取新的数据库实例 var db = DbHelper.GetNewDb(); //查询用户 var userInfo = db.Queryable().ToList(); //查询用户登录 var userLogin = db.Queryable().ToList(); } public static void JoinQuery() { // 获取新的数据库实例 var db = DbHelper.GetNewDb(); var queryResult = db.Queryable((ui, ul) => new JoinQueryInfos(JoinType.Inner, ui.UserId == ul.UserId)).Select((ui, ul) => new { ui.UserName, ul.LoginTime, }).ToList(); } public static void PageQuery() { // 获取新的数据库实例 var db = DbHelper.GetNewDb(); //查询用户 var userList = db.Queryable().ToPageList(2, 2); var queryResult = db.Queryable((ui, ul) => new JoinQueryInfos(JoinType.Inner, ui.UserId == ul.UserId)).Select((ui, ul) => new { ui.UserName, ul.LoginTime, }).ToPageList(2, 2); } public static void OrderBy() { // 获取新的数据库实例 var db = DbHelper.GetNewDb(); //查询用户 var userList = db.Queryable().OrderBy(p => p.UserName).ToList(); var queryResult = db.Queryable((ui, ul) => new JoinQueryInfos(JoinType.Inner, ui.UserId == ul.UserId)).Select((ui, ul) => new { ui.UserName, ul.LoginTime, }).OrderBy(ui => ui.UserName).ToList(); } public static void GroupBy() { // 获取新的数据库实例 var db = DbHelper.GetNewDb(); //查询用户 var userList = db.Queryable().GroupBy(p => p.Email).Select(p => new { UserId = SqlFunc.AggregateMax(p.UserId), p.Email, }).OrderBy(p => p.UserId).ToList(); var queryResult = db.Queryable((ui, ul) => new JoinQueryInfos(JoinType.Inner, ui.UserId == ul.UserId)).GroupBy((ui, ul) => new { ui.UserName, }) .Select((ui, ul) => new { UserId = SqlFunc.AggregateMax(ui.UserId), ui.UserName, LoginTime = SqlFunc.AggregateMax(ul.LoginTime), }).OrderBy(ui => ui.UserName).ToList(); } public static void Deleteable() { // 获取新的数据库实例 var db = DbHelper.GetNewDb(); //查询用户 var userList = db.Queryable().ToList(); //删除用户 var deleteUserRet = db.Deleteable(userList).ExecuteCommand(); //查询用户登录 var userLoginList = db.Queryable().ToList(); //删除用户登录 var deleteUserLoginRet = db.Deleteable(userLoginList).ExecuteCommand(); } } /// /// 用户信息实体类 /// [SugarTable("USER_INFO", TableDescription = "用户信息")] public class UserInfo { /// /// 用户ID(主键) /// [SugarColumn(IsIdentity = true, IsPrimaryKey = true, ColumnDescription = "用户ID")] public int UserId { get; set; } /// /// 用户名 /// [SugarColumn(Length = 50, IsNullable = false, ColumnDescription = "用户名")] public string UserName { get; set; } /// /// 用户邮箱 /// [SugarColumn(IsNullable = true, ColumnDescription = "用户邮箱")] public string Email { get; set; } /// /// 产品价格 /// [SugarColumn(ColumnDescription = "产品价格")] public decimal Price { get; set; } /// /// 用户内容 /// [SugarColumn(ColumnDataType = StaticConfig.CodeFirst_BigString, IsNullable = true, ColumnDescription = "用户内容")] public string Context { get; set; } /// /// 用户注册日期 /// [SugarColumn(IsNullable = true, ColumnDescription = "用户注册日期")] public DateTime? RegistrationDate { get; set; } } /// /// 用户登录实体类 /// [SugarTable("USER_LOGINS")] public class UserLogins { /// /// ID(主键) /// [SugarColumn(IsIdentity = true, IsPrimaryKey = true)] public int Id { get; set; } /// /// 用户ID /// [SugarColumn(IsNullable = false)] public int UserId { get; set; } /// /// 登录时间 /// [SugarColumn(IsNullable = true)] public DateTime LoginTime { get; set; } } }