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

Agent-Sandbox UI 上线,来看看有哪些的功能是你经常使用的?韶

一、简化查询1. 先看一下查询的例子////// 账户获取服务/////////public class AccountGetService(AccountTable table, IShadowBuilder builder){private readonly SqlSource _source new(builder.DataSource);private readonly IParamQuery _accountQuery builder.BuildResult(table.ToQuery().And(account account.Id.Equal()).ToSelect().SelectSelfColumns());////// 获取账户////////////public Task GetAsync(Account param, CancellationToken token default) _accountQuery.GetFirstAsync(_source, param, token);}2. 调用方式如下var account await accountGetService.GetAsync(new Account { Id 1L });3. 这个例子我们可以简化一下参数直接使用Id(类型由Account简化为long)很大一部分数据库操作都只有一个参数(GetById、GetByName等)为此定义一个含单个属性类有点浪费按上面的例子使用实体类作为参数也感觉怪怪的DBShadow.net支持这种简化操作单个参数无需封装,直接使用参数类型即可public class AccountGetService(AccountTable table, IShadowBuilder builder){private readonly SqlSource _source new(builder.DataSource);private readonly IParamQuery _accountQuery builder.BuildResult(table.ToQuery().And(account account.Id.Equal()).ToSelect().SelectSelfColumns());public Task GetAsync(long accountId, CancellationToken token default) _accountQuery.GetFirstAsync(_source, param, token);}var account await accountGetService.GetAsync(1L);4. 特别注意不要在Dapper中这样使用Dapper是不支持这种简化操作以下Dapper错误示例会抛出异常System.InvalidOperationException:“Must add values for the following parameters: Id”await using var conn _dataSource.CreateConnection();var sql SELECT \Id\,\Title\,\Content\,\Done\,\LastTime\ FROM \Todo\ WHERE \Id\Id;var first await conn.QueryFirstOrDefaultAsync(sql, 1L);二、 集合参数也支持简化操作1. IN查询简化的例子In的参数名是可选和前面例子的Equal是一样的,默认字段名In查询的实参支持数组、集合及字典只有In一个集合参数时支持直接传数组、集合或字典这时参数名(eg: AccountIds)就无所谓取什么名了因为不需要按参数名反射获取属性了////// 批量账户获取服务/////////public class AccountBatchService(AccountTable table, IShadowBuilder builder){private readonly SqlSource _source new(builder.DataSource);private readonly IParamQuery _accountQuery builder.BuildResult(table.ToQuery().And(account account.Id.In(AccountIds)).ToSelect().SelectSelfColumns());////// 批量获取账户////////////public IAsyncEnumerable GetAsync(long[] accountIds, CancellationToken token default) _accountQuery.QueryAsync(_source, accountIds, token);}2. 以上调用的例子如下[Fact]public async Task Batch(){var count 0;var service new AccountBatchService(table, builder);var list service.GetAsync([1L, 2L, 3L]);await foreach (var item in list){_output.WriteLine(${item.Id}:{item.Amount});count;}Assert.Equal(3, count);}// 1:100// 2:200// 3:300三、泛型查询1. 泛型服务类代码该服务用来按字段Id查询表Account参数TParam是泛型,这样可以直接使用DTO参数来查询,减少类型转化的开销返回值TAccount也是泛型,这样就可以直接返回视图模型或者领域模型这样的泛型服务类就非常的通用////// 账户获取泛型服务/////////public class AccountGetService(AccountTable table, IShadowBuilder builder){private readonly SqlSource _source new(builder.DataSource);private readonly IParamQuery _accountQuery builder.BuildResult(table.ToQuery().And(account account.Id.Equal()).ToSelect().SelectSelfColumns());////// 获取账户////////////public Task GetAsync(TParam param, CancellationToken token default) _accountQuery.GetFirstAsync(_source, param, token);}2. 中规中矩的调用方式var service new AccountGetService(_table, _builder);var account await service.GetAsync(new Account { Id 1L });Assert.NotNull(account);3. 支持简单调用方式var service new AccountGetService(_table, _builder);var account await service.GetAsync(1L);Assert.NotNull(account);四、总结DBShadow.net预编译比较智能只有1个参数时支持化繁为简,支持直接传值做为参数值这样可以节约定义只有一个属性的参数类参数和返回值类型还可以定义为泛型,可以做到更加灵活辞镣诘沮

相关文章:

Agent-Sandbox UI 上线,来看看有哪些的功能是你经常使用的?韶

一、简化查询 1. 先看一下查询的例子 /// /// 账户获取服务 /// /// /// public class AccountGetService(AccountTable table, IShadowBuilder builder) {private readonly SqlSource _source new(builder.DataSource);private readonly IParamQuery _accountQuery build…...

Triton + RISC-V缓

. GIF文件结构 相比于 WAV 文件的简单粗暴,GIF 的结构要精密得多,因为它天生是为了网络传输而设计的(包含了压缩机制)。 当我们用二进制视角观察 GIF 时,它是由一个个 数据块(Block) 组成的&…...

如何在Windows、Linux和macOS上快速配置Ryujinx Switch模拟器:5个关键步骤提升游戏体验

如何在Windows、Linux和macOS上快速配置Ryujinx Switch模拟器:5个关键步骤提升游戏体验 【免费下载链接】Ryujinx 用 C# 编写的实验性 Nintendo Switch 模拟器 项目地址: https://gitcode.com/GitHub_Trending/ry/Ryujinx 想要在电脑上畅玩Switch游戏吗&…...

QWEN-AUDIO语音合成教程:中文四声调建模对自然度的关键影响

QWEN-AUDIO语音合成教程:中文四声调建模对自然度的关键影响 你有没有遇到过这样的语音合成效果?文字念得都对,但听起来就是“怪怪的”,像机器人在念稿,没有真人说话的那种抑扬顿挫和情感起伏。尤其是在说中文的时候&a…...

OpenClaw长任务优化:Qwen3.5-9B的128K上下文实战技巧

OpenClaw长任务优化:Qwen3.5-9B的128K上下文实战技巧 1. 为什么需要长上下文支持 上周我尝试用OpenClaw处理一本300页的技术书籍时,遇到了典型的长文档处理难题。当我把整本书的PDF文本直接喂给模型时,发现后半部分的分析结果明显偏离主题—…...

5分钟解锁浏览器编程革命:Core72在线IDE零配置开发指南

5分钟解锁浏览器编程革命:Core72在线IDE零配置开发指南 【免费下载链接】core Online IDE powered by Visual Studio Code ⚡️ 项目地址: https://gitcode.com/gh_mirrors/core72/core 还在为开发环境配置烦恼吗?每次换设备都要重新安装Node.js、…...

Cursor Pro智能激活完全指南:三步解锁无限AI编程权限

Cursor Pro智能激活完全指南:三步解锁无限AI编程权限 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reached your tria…...

Three.js地球可视化特效合集:飞线动画+3D地理渲染实战案例源码

温馨提示:文末有联系方式地球三维飞线动画演示 真实模拟全球航线、数据流向等动态连接效果,支持自定义起点终点、颜色渐变、运动速率及轨迹衰减,视觉表现力强且性能优化到位。高精度地球几何建模 采用球面细分与法线贴图技术构建逼真地球表面…...

Windows电脑如何直接运行安卓应用?APK Installer终极解决方案揭秘

Windows电脑如何直接运行安卓应用?APK Installer终极解决方案揭秘 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 还在为手机和电脑之间的应用壁垒而烦恼吗…...

kill-doc:智能文档下载效率工具,让内容获取化繁为简

kill-doc:智能文档下载效率工具,让内容获取化繁为简 【免费下载链接】kill-doc 看到经常有小伙伴们需要下载一些免费文档,但是相关网站浏览体验不好各种广告,各种登录验证,需要很多步骤才能下载文档,该脚本…...

JBoltAI企业级Java AI框架:新版本文件解析

在企业级Java系统向AI化转型的过程中,如何稳定、高效地接入大模型能力、打通非结构化数据与业务对话,是众多技术团队面临的核心问题。JBoltAI作为面向企业Java技术栈的AI应用开发框架,致力于以标准化、低侵入的方式,为现有系统与A…...

3分钟解锁Windows安卓应用安装:告别模拟器的高效解决方案

3分钟解锁Windows安卓应用安装:告别模拟器的高效解决方案 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 在数字化工作与娱乐场景中,用户常常面…...

英国人正在减少社交媒体发帖,网络态度趋于保守

英国成年人在社交媒体上的活跃度持续下滑。据英国电信监管机构Ofcom最新数据显示,目前仅有一半用户会主动发布内容,且认为上网利大于弊的人数也在减少。Ofcom对一批成年人的媒体使用情况及态度进行了调查,结果发现,主动在社交媒体…...

革新性桌面信息聚合方案:TrafficMonitor插件全维度应用指南

革新性桌面信息聚合方案:TrafficMonitor插件全维度应用指南 【免费下载链接】TrafficMonitorPlugins 用于TrafficMonitor的插件 项目地址: https://gitcode.com/gh_mirrors/tr/TrafficMonitorPlugins 你是否经常在工作时需要同时打开多个监控窗口&#xff1f…...

jmeter处理接口返回中文乱码的问题

找到jmeter目录文件:apache-jmeter-5.5\bin\jmeter.properties搜索:sampleresult.default.encoding ,取消注释,然后把 默认的ISO-8859-1修改为UTF-8后保存,重启jmeter便可接口返回的中文就不会再出现乱码了...

Steam Achievement Manager:游戏成就全流程管理工具详解

Steam Achievement Manager:游戏成就全流程管理工具详解 【免费下载链接】SteamAchievementManager A manager for game achievements in Steam. 项目地址: https://gitcode.com/gh_mirrors/st/SteamAchievementManager 🌟 为什么选择Steam Achie…...

Qwen3-14B私有部署镜像:利用MATLAB进行大模型输出数据分析与可视化

Qwen3-14B私有部署镜像:利用MATLAB进行大模型输出数据分析与可视化 1. 科研数据分析的新思路 在科研和工程领域,我们经常需要处理大量文本数据。传统的人工分析方法不仅耗时耗力,而且难以发现深层次的规律。Qwen3-14B作为一款强大的开源大语…...

Manim与3Blue1Brown:如何用Python制作专业数学动画

Manim与3Blue1Brown:用Python打造数学动画的终极指南 当Grant Sanderson以3Blue1Brown频道颠覆数学可视化领域时,他背后那个神秘的动画引擎Manim逐渐走入开发者视野。这个用Python编写的工具不仅能还原《数学之美》中的经典场景,更能让每位具…...

通义千问2.5-7B实战部署:从下载到对话,完整步骤详解

通义千问2.5-7B实战部署:从下载到对话,完整步骤详解 1. 引言 1.1 为什么选择通义千问2.5-7B 通义千问2.5-7B-Instruct是阿里云2024年9月推出的开源大语言模型,作为70亿参数的中等规模模型,它在多项基准测试中表现优异&#xff…...

分享 种 .NET 桌面应用程序自动更新解决方案滞

一、Actor 模型:不是并发技巧,而是领域单元 Actor 模型的本质是: Actor 是独立运行的实体 Actor 之间只通过消息交互 Actor 内部状态不可被外部直接访问 Actor 自行决定如何处理收到的消息 Actor 模型真正解决的是: 如何在不共享状…...

go语言学习(基本数据类型)

布尔类型true false布尔型数据只有 true(真)和 false(假)两个值 布尔类型变量的默认值为falseGo 语言中不允许将整型强制转换为布尔型布尔型无法参与数值运算,也无法与其他类型进行转换 package mainimport "f…...

YOLO12快速上手:RTX4090上7.6ms/帧实时检测实操手册

YOLO12快速上手:RTX4090上7.6ms/帧实时检测实操手册 1. 引言:为什么你需要关注YOLO12? 如果你正在寻找一个又快又准的目标检测工具,用来处理监控视频、分析图片内容,或者只是想快速验证一个视觉AI的想法,…...

打字不如说话,说话不如截图——AI 代码助手的多模态输入实践伺

整体排查思路 我们的目标是验证以下三个环节是否正常: 登录成功时:服务器是否正确生成了Session并返回了包含正确 JSESSIONID的Cookie给浏览器。 浏览器端:浏览器是否成功接收并存储了该Cookie。 后续请求:浏览器在执行查询等操作…...

秒杀系统设计:十万QPS下的技术架构演进

在电商大促场景中,秒杀系统是典型的高并发、低库存业务模型,其核心挑战在于瞬时十万级QPS(每秒查询率)下的系统稳定性与数据一致性。对于软件测试从业者而言,这不仅涉及性能压测的极限挑战,更需关注架构演进…...

OpCore Simplify:黑苹果EFI配置效率提升80%的自动化方案 | 全层次用户指南

OpCore Simplify:黑苹果EFI配置效率提升80%的自动化方案 | 全层次用户指南 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 问题&#xff1…...

如何3分钟完成Windows和Office批量激活:KMS_VL_ALL_AIO终极指南

如何3分钟完成Windows和Office批量激活:KMS_VL_ALL_AIO终极指南 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 你是否曾因Windows系统弹出激活提示而烦恼?或者Office软件…...

Adobe-GenP:创意工具普惠化的技术破局实践

Adobe-GenP:创意工具普惠化的技术破局实践 【免费下载链接】Adobe-GenP Adobe CC 2019/2020/2021/2022/2023 GenP Universal Patch 3.0 项目地址: https://gitcode.com/gh_mirrors/ad/Adobe-GenP 一、问题象限:创意产业的授权困境与技术挑战 1.1…...

5步掌握labelCloud:打造专业级3D点云标注工作流

5步掌握labelCloud:打造专业级3D点云标注工作流 【免费下载链接】labelCloud A lightweight tool for labeling 3D bounding boxes in point clouds. 项目地址: https://gitcode.com/gh_mirrors/la/labelCloud 想要为你的自动驾驶项目或机器人视觉系统准备高…...

Java响应式最后一公里:Loom原生支持下的WebMvc→WebFlux渐进式迁移路线图(仅限首批内测团队获取)

第一章:Java响应式编程转型的范式跃迁与Loom时代使命传统阻塞式I/O模型在高并发场景下遭遇线程资源瓶颈,而Project Reactor与RSocket等响应式生态组件推动Java从“以线程为中心”转向“以事件流为中心”的范式跃迁。这一转变不仅重构了异步数据处理逻辑&…...

为什么90%的GraalVM项目内存优化失败?——源于忽略这2个编译期元数据约束与1个运行时堆布局陷阱

第一章:为什么90%的GraalVM项目内存优化失败?——源于忽略这2个编译期元数据约束与1个运行时堆布局陷阱 GraalVM 原生镜像(Native Image)的内存优化常被误认为仅依赖 --optimize 或 --enable-http 等运行时参数,实则…...