当前位置: 首页 > news >正文

【分组去重】.NET开源 ORM 框架 SqlSugar 系列

  💥 .NET开源 ORM 框架 SqlSugar 系列  🎉🎉🎉

  1. 【开篇】.NET开源 ORM 框架 SqlSugar 系列
  2. 【入门必看】.NET开源 ORM 框架 SqlSugar 系列
  3. 【实体配置】.NET开源 ORM 框架 SqlSugar 系列
  4. 【Db First】.NET开源 ORM 框架 SqlSugar 系列
  5. 【Code First】.NET开源 ORM 框架 SqlSugar 系列
  6. 【数据事务】.NET开源 ORM 框架 SqlSugar 系列
  7. 【连接池】.NET开源 ORM 框架 SqlSugar 系列
  8. 【查询目录】.NET开源 ORM 框架 SqlSugar 系列
  9. 【查询基础】.NET开源 ORM 框架 SqlSugar 系列
  10. 【排序用法】.NET开源 ORM 框架 SqlSugar 系列
  11. 【分组去重】.NET开源 ORM 框架 SqlSugar 系列
  12. 【联表查询】.NET开源 ORM 框架 SqlSugar 系列
  13. 【导航查询】.NET开源 ORM 框架 SqlSugar 系列
  14. 【子查询】.NET开源 ORM 框架 SqlSugar 系列
  15. 【嵌套查询】.NET开源 ORM 框架 SqlSugar 系列

💦万丈高楼平地起,做开发想要技术精进,必须要有扎实的基础功底。基础SQL查询语法一定要牢记于心,才能应对后面更为复杂的形势。

e57c501b379f46dfb38d3b8584575f1f.png

一、分组查询和使用

1.1 基础语法

💥注意事项:只有在聚合对象需要筛选的时候才会用到 Having ,一般分组查询用不到可以去掉。

  var list = db.Queryable<Student>().GroupBy(it => new { it.Id, it.Name }) //可以多字段.Where(it=>it.Id>0)//普通过滤//.Having(it => SqlFunc.AggregateCount(it.Id) > 0)//聚合函数过滤.Select(it => new { idAvg = SqlFunc.AggregateAvg(it.Id??0),count = SqlFunc.AggregateCount(it.Id),  name = it.Name }).ToList();//      SELECT     
//           AVG([Id]) AS[idAvg],
//           Count(it.Id) 
//           [Name] AS[name]  
//               
//               FROM[Student] GROUP BY[Name],[Id] Where Id > 0 //Count用法
//SqlFunc.AggregateCount(it.Id)//单个字段用法  (多个单个也能叠加).GroupBy(it =>SqlFunc.SubString(it.Name,0,1)).GroupBy(it =>it.Id)//新版本支持了分组带函数.GroupBy(it=>new { it.Id, name= SqlFunc.ToString(it.Name) }

🤖温馨提示:分组查询可以进行 汇总查询平均值最大值最小值 等操作

1.2 去空值(isnull 或 ifnull)

💥注意事项:库中存在 null 如果不处理那么 avg sum 将查询不了数据

SqlFunc.AggregateSumNoNull(it.num) //等于 sum(isnull(num,0))
//5.1.4.108-preview31+
SqlFunc.AggregateAvgNoNull(it.num) //等于 avg(isnull(num,0))//nullable类型也可以用??去除null
SqlFunc.AggregateSum(it.num??0)// avg(isnull(num,0))//原始用法
SqlFunc.AggregateSum(SqlFunc.Isnull(it.num,0))// avg(isnull(num,0))

1.3 排序统计列

💥注意事项: 需要加 MergeTable 才能排序统计过的列

  var list = db.Queryable<Student>().GroupBy(it => new { it.Id, it.Name })  .Where(it=>it.Id>0) .Select(it => new { idAvg = SqlFunc.AggregateAvg(it.Id??0),count = SqlFunc.AggregateCount(it.Id),  name = it.Name }).MergeTable()//需要加MergeTable才能排序统计过的列.OrderBy(it=>it.count).ToList();

二、Distinct 使用

🤖功能:一般用来指定字段去重复,查询不重复的值,去重字段


var list = db.Queryable<Student>().Distinct().Select(it => new { it.Name }).ToList();
//SELECT  DISTINCT  [Name] AS [Name]  FROM [STudent]

注意:升级较新版本兼容了 rownumber 冲突

三、分组获取前几条

3.1 数据库通用写法

注意:该写法只能支持获取1条,如果想分组获取1条以上看 3.2 

var list=db.Queryable<Order>() .GroupBy(it => it.Name)//MergeTable之前不要有OrderBy.Select(it => new{name = it.Name,id = SqlFunc.AggregateMax(it.Id)}).MergeTable().LeftJoin<Order>((a, b) => a.id == b.Id)//OrderBy((a,b)=a.Id).Select((a, b) => b).ToList();
// SELECT [b].* 
//  FROM  
//  (SELECT*FROM(SELECT [Name]AS[name],MAX([Id]) AS [id] FROM [Order] GROUP BY [Name]) MergeTable )[a]
//  Left JOIN 
//  [Order] [b]  ON ( [a].[id] = [b].[Id] )

3.2 开窗函数语法实现

新版本才支持  5.1.1 

支持数据库:SqlServer、MySql8.0+、Oracle 、PgSql、达梦、金仓 等数据库支持

说明: partition by name 就等于  group by name

var test48 = db.Queryable<Order>().Select(it => new{index2 = SqlFunc.RowNumber(it.Id,it.Name),//order by id partition by name//多字段排序  order by id asc ,name desc//SqlFunc.RowNumber($"{it.Id} asc ,{it.Name} desc ",$"{it.Name}")price=it.Price,date=it.CreateTime}).MergeTable()//将结果合并成一个表.Where(it=>it.index2==1) //相同的name只取一条记录//前20条用Where(it=>it.index2=<=20) .ToList();//SELECT * FROM  // (SELECT  //row_number() over( partition by [Name] order by [Id]) AS [index2], //[Price] AS [price] , //[CreateTime] AS [date]  FROM [Order]// ) MergeTable   WHERE ( [index2] = 1 )//多个字段 5.1.2-preview01
SqlFunc.RowNumber($"{it.Id} asc ,{it.Name} desc "  , $"{it.Id},{it.Name}")
//partition by [id],[Name] order by [Id] asc,[name] desc

3.3 个别数据库写法


//1.个别库独有实现
//像Oracle 、SqlServer 语法糖
db.Queryable<Order>().Take(1).PartitionBy(it=>it.Name).ToList()
db.Queryable<Order>().OrderBy(it=>it.id,OrderByType.Desc).Take(1).PartitionBy(it=>it.Name).ToList()

四、特殊日期分组

例子1 :  年月分好组简写

var students = db.Queryable<Order>().GroupBy(it=>it.CreateTime.ToString("yyyy-MM")).Select(it=>new { Time=it.CreateTime.ToString("yyyy-MM"),Count=SqlFunc.AggregateCount(it.name)})//如果想在后面OrderBy//.MergeTable().OrderBy(it=>it.Count).ToList();

例子2: 根据年月日进行分组


var getOrderBy = db.Queryable<Order>().Select(it=>new  {Id=it.Id,Name=it.Name,//这儿不能写聚合函数,因没分组CreateTime=it.CreateTime.Date//只取日期//DateTime?类型 it.CreateTime.Value.Date}).MergeTable()//将查询结果转成一个表.GroupBy(it=>it.CreateTime).Select(it=>new { id =SqlFunc.AggregateMax(it.Id),crate=it.CreateTime }).ToList();

例子3:使用SQL语句分组

.GroupBy(it => SqlFunc.MappingColumn(default(string), " CONVERT(varchar(10),t.F_OutTime, 120)"))
//生成的Sql如下
//GROUPBY CONVERT(varchar(10),t.F_OutTime, 120)

五、Count ( distinct 字段 )

db.Queryable<Order>().Select(it=>SqlFunc.AggregateDistinctCount(it.Id)).ToList()//最新版本支持db.Queryable<Order>().Select<int>("count(distinct  id)").ToList();

六、强制不参数化 

语法更新:

//新语法 5.1.4.64
SqlFunc.MappingColumn<string>("'a'") //生成的Sql是 'a'  ,不会是参数化对象
SqlFunc.MappingColumn<int>("1") //生成的Sql是1//老版本语法
SqlFunc.MappingColumn(default(string),"'a'")
SqlFunc.MappingColumn(default(int),"1")

🤖 一般解决 GroupBy 参数名不同引起的分组失败

例如:Group 里面是参数@p1=1  Select中是参数 @p2 =1  ,只因参数名不同引起了分组失败

//改之前
var list = db.Queryable<Order>().GroupBy(it =>it.Name.Substring(0,1)).Select(it => new {name=it.Name.Substring(0,1))})
.First();//改之后
var list = db.Queryable<Order>().GroupBy(it =>it.Name.Substring( SqlFunc.MappingColumn<int>("0"),SqlFunc.MappingColumn<int>("1"))).Select(it => new {name=it.Name.Substring(SqlFunc.MappingColumn<int>("0"),SqlFunc.MappingColumn<int>("1"))})
.First();//这样生成的Sql就不会有参数化对象了
//SELECT  SUBSTRING(`Name`,1 + 0,1) AS `name`  FROM `Order`   
// GROUP BY SUBSTRING(`Name`,1 + 0,1)   LIMIT 0,1

七、联表中GroupBy用法

 db.Queryable<Student>().LeftJoin<Book>((it,b)=>it.id==b.studentid).GroupBy((it,b)=> new { it.Id, it.Name }) //可以多字段.Having((it,b)=> SqlFunc.AggregateAvg(it.Id) > 0)//不是聚合函数用Where就可以了.Select((it,b)=> new {idAvg=SqlFunc.AggregateAvg(it.Id),name=it.Name})//Select写最后.ToList();//GroupBy用到b表那就应该写成 (it,b)=>new {}//没用到b表可以写成这样  it=>new{}

八、分组取ID+集合的方式(ef类似)

请升级到 5.1.4.66

 //List<T>集合var list = db.Queryable<Order>().Where(it=>it.Id>0).GroupBy(it=>it.CustomId)//根据CustomId分组.Select(it => new {cusid=it.CustomId,list=SqlFunc.Subqueryable<Order>().Where(s=>s.CustomId==it.CustomId).ToList()}).ToList();//List<string>集合          var list = db.Queryable<Order>().Where(it=>it.Id>0).GroupBy(it=>it.CustomId)//根据CustomId分组.Select(it => new {cusid=it.CustomId,ids=SqlFunc.Subqueryable<Order>().Where(s=>s.CustomId==it.CustomId).ToList(s=>s.Id)}).ToList();

九、所有开窗口函数

group 的高级应用 ,他不依赖 group 可以分组,并且可以多个使用而不需写 group 

  count = SqlFunc.RowCount(),// count (1) over() max= SqlFunc.RowMax(it.num??0),// max(isnull(num,0)) over() min= SqlFunc.RowMin(it.num??0),// min(isnull(num,0)) over() avg= SqlFunc.RowAvg(it.num??0),// avg(isnull(num,0)) over() index = SqlFunc.RowNumber(it.Id), // row_number() over( order by a.`Id`)index = SqlFunc.RowNumber(it.Id,it.Name)//  row_number() over( partition by name order by a.`Id`)index = SqlFunc.RowNumber(SqlFunc.Desc(it.Id),it.Name)//  row_number() over( partition by name order by a.`Id` desc)index = SqlFunc.Rank //和rownumber类似用法//多字段看3.1//多字段排序  //order by id asc ,name desc//partition by name,id//SqlFunc.RowNumber($"{it.Id} asc ,{it.Name} desc ",$"{it.Name},{it.Id}")

十、Count加条件

通过 sum 加三元实现 Count 加条件统计,Sum(1)等于同Count, 把不想要的改成0这样Sum就是统计的想要的

  var list = db.Queryable<Student>().GroupBy(it => new { it.Name  }) .Select(it => new { count= SqlFunc.AggregateSum(it.Id>10?1:0),}).ToList();

十一、不分组使用Count

更多看标题9

 count = SqlFunc.RowCount(),// count (1) over()

十二、按季分组

 SqlFunc.DateValue(DateTime.Now,DateType.Quarter)//获取季

   .NET开源 ORM 框架 SqlSugar 系列

  1. 【开篇】.NET开源 ORM 框架 SqlSugar 系列
  2. 【入门必看】.NET开源 ORM 框架 SqlSugar 系列
  3. 【实体配置】.NET开源 ORM 框架 SqlSugar 系列
  4. 【Db First】.NET开源 ORM 框架 SqlSugar 系列
  5. 【Code First】.NET开源 ORM 框架 SqlSugar 系列
  6. 【数据事务】.NET开源 ORM 框架 SqlSugar 系列
  7. 【连接池】.NET开源 ORM 框架 SqlSugar 系列
  8. 【查询目录】.NET开源 ORM 框架 SqlSugar 系列
  9. 【查询基础】.NET开源 ORM 框架 SqlSugar 系列
  10. 【排序用法】.NET开源 ORM 框架 SqlSugar 系列
  11. 【分组去重】.NET开源 ORM 框架 SqlSugar 系列
  12. 【联表查询】.NET开源 ORM 框架 SqlSugar 系列
  13. 【导航查询】.NET开源 ORM 框架 SqlSugar 系列
  14. 【子查询】.NET开源 ORM 框架 SqlSugar 系列
  15. 【嵌套查询】.NET开源 ORM 框架 SqlSugar 系列

 

0b8e59d90e454548a8dfd2525b0933cd.gif

相关文章:

【分组去重】.NET开源 ORM 框架 SqlSugar 系列

&#x1f4a5; .NET开源 ORM 框架 SqlSugar 系列 &#x1f389;&#x1f389;&#x1f389; 【开篇】.NET开源 ORM 框架 SqlSugar 系列【入门必看】.NET开源 ORM 框架 SqlSugar 系列【实体配置】.NET开源 ORM 框架 SqlSugar 系列【Db First】.NET开源 ORM 框架 SqlSugar 系列…...

2020年

C D A C B B A B C B A 42...

基于Matlab卡尔曼滤波的GPS/INS集成导航系统研究与实现

随着智能交通和无人驾驶技术的迅猛发展&#xff0c;精确可靠的导航系统已成为提升车辆定位精度与安全性的重要技术。全球定位系统&#xff08;GPS&#xff09;和惯性导航系统&#xff08;INS&#xff09;在导航应用中各具优势&#xff1a;GPS提供全球定位信息&#xff0c;而INS…...

《只狼》运行时提示“mfc140u.dll文件缺失”是什么原因?“找不到mfc140u.dll文件”要怎么解决?教你几招轻松搞定

《只狼》运行时提示“mfc140u.dll文件缺失”的科普与解决方案 作为一名软件开发从业者&#xff0c;在游戏开发和维护过程中&#xff0c;我们经常会遇到各种运行时错误和系统报错。今天&#xff0c;我们就来探讨一下《只狼》这款游戏在运行时提示“mfc140u.dll文件缺失”的原因…...

C语言:指针与数组

一、. 数组名的理解 int arr[5] { 0,1,2,3,4 }; int* p &arr[0]; 在之前我们知道要取一个数组的首元素地址就可以使用&arr[0]&#xff0c;但其实数组名本身就是地址&#xff0c;而且是数组首元素的地址。在下图中我们就通过测试看出&#xff0c;结果确实如此。 可是…...

win11无法检测到其他显示器-NVIDIA

https://www.nvidia.cn/software/nvidia-app/ https://cn.download.nvidia.cn/nvapp/client/11.0.1.163/NVIDIA_app_v11.0.1.163.exe 下载安装后&#xff0c;检测驱动、更新驱动。...

SQLite:DDL(数据定义语言)的基本用法

SQLite&#xff1a;DDL&#xff08;数据定义语言&#xff09;的基本用法 1 主要内容说明2 相关内容说明2.1 创建表格&#xff08;create table&#xff09;2.1.1 SQLite常见的数据类型2.1.1.1 integer&#xff08;整型&#xff09;2.1.1.2 text&#xff08;文本型&#xff09;2…...

AI工具集:一站式1000+人工智能工具导航站

在当今数字化时代&#xff0c;人工智能&#xff08;AI&#xff09;技术的飞速发展催生了众多实用的AI工具&#xff0c;但面对如此多的选择&#xff0c;想要找到适合自己的高质量AI工具却并非易事。网络搜索往往充斥着推广内容&#xff0c;真正有价值的信息被淹没其中。为了解决…...

视觉处理基础2

目录 1.池化层 1.1 概述 1.2 池化层计算 1.3 步长Stride 1.4 边缘填充Padding 1.5 多通道池化计算 1.6 池化层的作用 2. 卷积拓展 2.1 二维卷积 2.1.1 单通道版本 2.1.2 多通道版本 2.2 三维卷积 2.3 反卷积 2.4 空洞卷积&#xff08;膨胀卷积&#xff09; 2.5 …...

代码随想录第十四天|二叉树part02--226.翻转二叉树、101.对称二叉树、104.二叉树的最大深度、111.二叉树的最小深度

资料引用&#xff1a; 226.翻转二叉树&#xff08;226.翻转二叉树&#xff09; 101.对称二叉树&#xff08;101.对称二叉树&#xff09; 104.二叉树的最大深度&#xff08;104.二叉树的最大深度&#xff09; 111.二叉树的最小深度&#xff08;111.二叉树的最小深度&#xff09;…...

vue基础之7:天气案例、监视属性、深度监视、监视属性(简写)

欢迎来到“雪碧聊技术”CSDN博客&#xff01; 在这里&#xff0c;您将踏入一个专注于Java开发技术的知识殿堂。无论您是Java编程的初学者&#xff0c;还是具有一定经验的开发者&#xff0c;相信我的博客都能为您提供宝贵的学习资源和实用技巧。作为您的技术向导&#xff0c;我将…...

JS实现高效导航——A*寻路算法+导航图简化法

一、如何实现两点间路径导航 导航实现的通用步骤&#xff0c;一般是&#xff1a; 1、网格划分 将地图划分为网格&#xff0c;即例如地图是一张图片&#xff0c;其像素为1000*1000&#xff0c;那我们将此图片划分为各个10*10的网格&#xff0c;从而提高寻路算法的计算量。 2、标…...

Spring Authorization Server登出说明与实践

本章内容概览 Spring Security提供的/logout登出接口做了什么与如何自定义。Spring Authorization Server提供的/connect/logout登出接口做了什么与如何自定义。Spring Authorization Server提供的/oauth2/revoke撤销token接口做了什么与如何自定义。 前言 既然系统中有登录功…...

浏览器报错 | 代理服务器可能有问题,或地址不正确

1 问题描述 Windows连网情况下&#xff0c;浏览器访问地址显示“你尚未连接&#xff0c;代理服务器可能有问题&#xff0c;或地址不正确。”出现如下画面&#xff1a; 2 解决方法 途径1 控制面板-->网络与internet-->internet选项-->Internet属性-->连接-->…...

泷羽sec:shell编程(9)不同脚本的互相调用和重定向操作

声明&#xff1a; 学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下&#xff0c;如涉及侵权马上删除文章&#xff0c;笔记只是方便各位师傅的学习和探讨&#xff0c;文章所提到的网站以及内容&#xff0c;只做学习交流&#xff0c;其他均与本人以及泷羽sec团队无关&#…...

Milvus×OPPO:如何构建更懂你的大模型助手

01. 背景 AI业务快速增长下传统关系型数据库无法满足需求。 2024年恰逢OPPO品牌20周年&#xff0c;OPPO也宣布正式进入AI手机的时代。超千万用户开始通过例如通话摘要、新小布助手、小布照相馆等搭载在OPPO手机上的应用体验AI能力。 与传统的应用不同的是&#xff0c;在AI驱动的…...

单片机几大时钟源

在单片机中&#xff0c;MSI、HSI和HSE通常指的是用于内部晶振配置的不同功能模块&#xff1a; MSI (Master Oscillator System Interface)&#xff1a;这是最低级的一种时钟源管理单元&#xff0c;它控制着最基本的系统时钟&#xff08;SYSCLK&#xff09;&#xff0c;一般由外…...

reverse学习总结(12)

一.[FlareOn4]IgniteMe1 https://files.buuoj.cn/files/02b39b8efca02367af23aa279c81cbec/attachment.zip 根据汇编语言分析 查看需要返回为1的函数 int sub_401050() {int v1; // [esp0h] [ebp-Ch]int i; // [esp4h] [ebp-8h]unsigned int j; // [esp4h] [ebp-8h]char v4; …...

基于“微店 Park”模式下 2+1 链动模式商城小程序的创新发展与应用研究

摘要&#xff1a;本文以“微店 Park”从“开店工具”向“众创平台”的转型为背景&#xff0c;深入探讨 21 链动模式商城小程序在该平台情境下的应用潜力与创新发展路径。通过剖析“微店 Park”的运营模式&#xff0c;包括灵活承租、低成本入驻、多元流量引流等特点&#xff0c;…...

C++11:【列表初始化】【右值引用和移动语义】

目录 一.列表初始化 1.1 C98传统的{} 1.2C11中的{} 1.3C中的std::initializer_list 二.右值引用和移动语义 2.1左值和右值 2.2左值引用和右值引用 2.3引用延长生命周期 2.4左值和右值的参数匹配 2.5右值引用和移动语义的使用场景 2.5.1左值引用主要使用场景 2.5.2移…...

明星数字人运营失效率高达68%?AI Agent驱动的粉丝交互系统,已帮3家MCN提升留存率217%

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;AI Agent娱乐行业应用的现状与挑战 近年来&#xff0c;AI Agent在娱乐行业的渗透持续加速&#xff0c;从智能剧本生成、虚拟偶像实时交互&#xff0c;到个性化内容推荐与跨平台用户行为建模&#xff0c…...

字节Seed基座GR3机器人的专属控制内核,具备柔性物体操控、人体姿态复刻、工业闭环作业等功能

全称&#xff1a;Gesture Real-Time Reinforcement Learning 全域实时姿态强化学习具身控制框架 内部代号&#xff1a;GR-RL V5.9.2 稳态正式版 隶属体系&#xff1a;字节Seed基座GR3机器人专属控制内核 核心用途&#xff1a;全品类柔性物体操控、人体仿生姿态复刻、工业高精度…...

【码上爬】 题十九:法外狂徒 相应数据加密还原,堆栈分析,扣代码

暗号&#xff1a;aHR0cHM6Ly9tYXNoYW5ncGEuY29tL3Byb2JsZW0tZGV0YWlsLzE5Lw 题目&#xff1a; 先对接口进行分析&#xff0c;参数中并没有任何加密&#xff0c;只是返回的数据是加密的&#xff0c;一个R 一个k 推测r是数据内容&#xff0c;k是解密密钥&#xff0c;进入堆栈以后…...

顶伯在线语音工具

⌨️ 顶伯在线语音工具快捷键大全顶伯文字转语音工具内置了丰富的快捷键&#xff0c;让您无需鼠标即可高效操控微软 TTS 引擎。下面为您汇总全部快捷键&#xff0c;建议收藏。⭐⚡ 一、核心操作快捷键▶️ 播放 / 暂停&#xff1a;Ctrl Enter开始或暂停当前文本的语音合成⏹️…...

揭秘FPGA内部世界:PrjXRay开源工具完整指南

揭秘FPGA内部世界&#xff1a;PrjXRay开源工具完整指南 【免费下载链接】prjxray Documenting the Xilinx 7-series bit-stream format. 项目地址: https://gitcode.com/gh_mirrors/pr/prjxray 你是否曾好奇FPGA芯片内部的神秘世界&#xff1f;那些二进制位流背后究竟隐…...

为小型创业团队搭建经济可控的大模型应用开发平台

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 为小型创业团队搭建经济可控的大模型应用开发平台 对于资源有限的创业团队而言&#xff0c;在拥抱大模型技术的同时&#xff0c;必…...

10分钟掌握BodyApps 3D Body Visualiser高级技巧:自定义皮肤、视角控制与参数联动

10分钟掌握BodyApps 3D Body Visualiser高级技巧&#xff1a;自定义皮肤、视角控制与参数联动 【免费下载链接】bodyapps-viz 3D body visualizer component for #bodyapps project 项目地址: https://gitcode.com/gh_mirrors/bo/bodyapps-viz BodyApps 3D Body Visuali…...

2025年终极指南:PlayIntegrityFix让你的Root设备完美通过Google认证

2025年终极指南&#xff1a;PlayIntegrityFix让你的Root设备完美通过Google认证 【免费下载链接】PlayIntegrityFix Fix Play Integrity (and SafetyNet) verdicts. 项目地址: https://gitcode.com/GitHub_Trending/pl/PlayIntegrityFix 还在为Root后的Android设备无法正…...

戴森球计划工厂蓝图架构深度解析:构建高效星际生产线的核心策略

戴森球计划工厂蓝图架构深度解析&#xff1a;构建高效星际生产线的核心策略 【免费下载链接】FactoryBluePrints 游戏戴森球计划的**工厂**蓝图仓库 项目地址: https://gitcode.com/GitHub_Trending/fa/FactoryBluePrints FactoryBluePrints 项目作为戴森球计划游戏中最…...

百度网盘macOS插件架构解析:基于运行时方法交换的SVIP权限模拟技术深度剖析

百度网盘macOS插件架构解析&#xff1a;基于运行时方法交换的SVIP权限模拟技术深度剖析 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 百度网盘macOS加…...