.net core小知识(持续更新)
分类: 后端
简介:如何判断DateTime变量不为空可以使用 DateTime 的默认值 DateTime.MinValue 或 DateTime.MaxValue 来进行比较 DateTime myDateTime = ;
if (myDateTime != DateTime.MinValue)
{ // DateTime 变量不为空,执行相应的操作
}
else
{ // DateTime 变量为空,执行其他操作
}
SqlSuagr对数据库的操作 1、创建数据库表 _db.DbMaintenance.CreateDatabase() 2、获取数据库表列表 _db.DbMaintenance.GetTableInfoList() 3、删除数据库表 _db.DbMaintenance.DropTable(表名) 获取配置文件中的指定字符串 // 1、读字符串
string conn = builder.Configuration.GetValue<string>("conn");
// 2、读对象
Person person = builder.Configuration.GetSection("Person").Get<Person>();
.netcore用sqlsugar实现3表联查
分类: 后端
简介: var data = await _db.Queryable<DDArShop_User_ShopCartEntity, DDAr_Shop_ShopName_TaoCanEntity, DDAr_Shop_UserEntity>((a, b,c) => new JoinQueryInfos(JoinType.Left, a.ShopNameTaoCanId == b.Id,JoinType.Left, a.TenantId == c.Id)).WhereIF(!string.IsNullOrEmpty(input.shopId), a => a.ShopId.Contains(input.shopId)).WhereIF(!string.IsNullOrEmpty(input.shopNameTaoCanId), a => a.ShopNameTaoCanId.Contains(input.shopNameTaoCanId)).Where((a, b, c) => a.DeleteMark == null && a.Type == 1) .Select((a,b,c) => new { id = a.Id, shopId = a.ShopId, shopNameTaoCanId = a.ShopNameTaoCanId, shopName = b.ShopTitle, chengYiJin = a.ChengYiJin, myPrice = a.MyPrice, type = a.Type, content = a.Content, result = a.Result, userPhone = a.UserPhone, userName = c.Nickname }).MergeTable().Select<DDArShop_ShopCartOutput>().OrderBy(sidx + " " + input.order).ToPagedListAsync(input.page, input.limit);
.netcore实现base64转png并保存到指定文件夹
分类: 后端
简介: /// <summary> /// 将传入的base64转化成png /// </summary> [HttpPost("ChangeBase64ToPng")] [AllowAnonymous] public async Task<string> ChangeBase64ToPng(DDARShopCodeKeyInput input) { string data = "a"; try { // 将Base64字符串转换为字节数组 byte[] imageBytes = Convert.FromBase64String(input.base64); string outName = YitIdHelper.NextId().ToString(); string outputPath = @"C:\Users\admin\Desktop\qrcode\type"+ input.type + "\\"+ outName + ".png"; // 创建一个MemoryStream来存储字节数组 using (MemoryStream ms = new MemoryStream(imageBytes)) { // 使用System.Drawing.Bitmap加载图像 using (Bitmap bitmap = new Bitmap(ms)) { // 将图像保存为PNG文件 bitmap.Save(outputPath, ImageFormat.Png); data = "图片已保存到:" + outputPath; } } } catch (Exception ex) { data = "转换并保存图片时出错:" + ex.Message; } return data; }
c#获取随机数,要求1-4的几率是70%,5-10是30%
分类: 后端
简介: // 生成一个介于 0 和 1 之间的随机数 Random random = new Random(); double randomValue = random.NextDouble(); // 生成一个介于 0 和 1 之间的随机小数 int randomNumber = 0; if (randomValue < 0.7) { // 区间 1 4,70% 概率 randomNumber = random.Next(1, 5); // 生成 1 到 4 之间的整数 } else { // 区间 5 10,30% 概率 randomNumber = random.Next(5, 11); // 生成 5 到 10 之间的整数 }
efcore的基础应用
分类: 后端
简介:efcore的基础使用一、基础查询//查询第一条数据,为空则抛出异常
数据库上下文.查询类.first()
//查询第一条数据,为空则返回null
数据库上下文.查询类.firstOrdefault()
//查询一条数据,为空则抛出异常,多条数据也抛出异常
数据库上下文.查询类.single()
//查询一条数据,为空则返回null
数据库上下文.查询类.singleOrdefault()
//查询所有数据
数据库上下文.查询类.tolist()
//条件查询
数据库上下文.查询类.where(p => p.id > 1).tolist()
//排序查询——正序
数据库上下文.查询类.OrderBy(p => p.id).tolist()
//排序查询——倒序
数据库上下文.查询类.OrderByDescending(p => p.id).tolist()
//跳过10条数据
数据库上下文.查询类.skip(10).tolist()
//取10条数据
数据库上下文.查询类.take(10).tolist()
//分页查询
var pageIndex = 1;
var pageSize = 10;
var room = context.classRooms.Skip((pageIndex 1)*pageSize).Take(pageSize).ToList();
//非跟踪查询
1.AsNoTracking()——单条
2.批量——修改context
context.ChangeTracker.QueryTrackingBehavior = QueryTrackingBehavior.NoTracking;
3.UseQueryTrackingBehavior二、基础新增//单个添加
数据库上下文.Add(new 查询类(){属性})
//多个添加
context.AddRange(new List<>(Student){ new Student(){classid = 2,name="aaa"}, new Student(){classid = 2,name="bbb"} })三、保存数据1、SaveChange()
2、批量更新和删除ExecuteUpdate/ExecuteDelete
上下文.查询类.where(条件).ExecuteDelete();四、基础修改//读取一个条数
var stuUpdate = context.Students.FirstOrDefault(p => p.Name == "aa");
//修改属性
stuUpdate.Name += "测试修改";
//设置状态为修改
context.Entry().State = EntityState.Modified;
context.SaveChanges(); //批量修改
context.Students.where(p=>p.classid == 2).ExecuteUpdate(s => s.SetProperty(b => b.Name,"[修改]"));五、基础删除//单个删除
var delstu = context.Students.FirstOrDefault();
context.Students.Remove(delstu);
context.SaveChanges();
//批量删除
上下文.查询类.where(条件).ExecuteDelete();六、事务//开启事务
using var transaction = context.Database.BeginTransaction();
try
{ 数据库操作代码 。。。。 //提交事务 transaction.commit(); }catch(Exception ex)
{ //回滚事务 transaction.rollback(); throw;
}七、分组和统计var groupData = context.Students //使用groupby分组,依据classid .GroupBy(s => s.ClassId) .Select(g => new { //拿到classId,由于是按classid分组的,所以使用min或者max都是一样的 ClassId = g.Max(s=>s.classId), StudentCount = g.Count() });