当前位置: 首页 > 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…...

行业必备!AI教材编写工具,快速出稿且保持低查重率

AI教材创作工具介绍 谁没有在写教材的时候感到无从下手?面对一张空白的文档,有时常常不知道从何起步,思考着到底先讲课本的概念还是先用实例来说明?在章节划分上,纠结于是按逻辑关系来还是按课时来安排?不…...

避坑指南:JavaCV中FFmpegFrameGrabber处理音频流时,采样格式转换的那些‘坑’

JavaCV音频处理实战:FFmpegFrameGrabber采样格式转换的深度解析 1. 音频采样格式的底层逻辑与核心挑战 在多媒体处理领域,音频采样格式的转换是一个看似简单实则暗藏玄机的技术点。当我们使用JavaCV的FFmpegFrameGrabber处理音频流时,经常会遇…...

Mininet实战指南:从基础命令到高级网络模拟

1. Mininet入门:基础命令与核心概念 第一次接触Mininet时,我完全被它模拟真实网络的能力震撼到了。这个轻量级网络仿真工具能在单台Linux机器上创建包含主机、交换机、控制器和链路的虚拟网络,特别适合做SDN开发和网络协议测试。记得当时为了…...

别再瞎选 B2B2C 开源商城了!实测对比 Tigshop /ShopXO/Likeshop/Niushop/BeikeShop

作为一名折腾过不少开源电商项目的程序员,我深知一个道理:选择电商系统这事儿,选对了皆大欢喜,选错了就是无底洞。技术栈老旧的、文档缺东少西的、号称“免费”结果到处埋坑的,这些年我都踩过一遍。最近因为项目需要调…...

手把手复现DiffusionDet:基于PyTorch从论文到代码的完整实践指南(含COCO数据集)

从零实现DiffusionDet:基于PyTorch的扩散式目标检测实战指南 1. 环境配置与工具准备 在开始DiffusionDet项目之前,确保你的开发环境满足以下要求。我们将使用PyTorch作为主要框架,配合CUDA加速计算。 硬件建议: GPU&#xff1…...

如何让AI替你操作浏览器?Midscene Chrome扩展的智能自动化革命

如何让AI替你操作浏览器?Midscene Chrome扩展的智能自动化革命 【免费下载链接】midscene AI-powered, vision-driven UI automation for every platform. 项目地址: https://gitcode.com/GitHub_Trending/mid/midscene 你是否厌倦了每天重复点击、填写、提交…...

Linux下Python连接MySQL报错‘libstdc++.so.6: cannot allocate memory in static TLS block’的保姆级修复指南

Linux下Python连接MySQL报错‘libstdc.so.6: cannot allocate memory in static TLS block’的保姆级修复指南 最近在Linux服务器上部署Python应用时,不少开发者遇到了一个令人头疼的错误:当尝试通过mysqlclient连接MySQL数据库时,系统抛出li…...

Pentaho Kettle数据血缘追踪架构深度解析:构建企业级数据治理核心能力

Pentaho Kettle数据血缘追踪架构深度解析:构建企业级数据治理核心能力 【免费下载链接】pentaho-kettle Pentaho Data Integration ( ETL ) a.k.a Kettle 项目地址: https://gitcode.com/gh_mirrors/pe/pentaho-kettle 在复杂的企业数据集成场景中&#xff0…...

文墨共鸣GPU算力优化:StructBERT模型显存占用降低40%的部署技巧

文墨共鸣GPU算力优化:StructBERT模型显存占用降低40%的部署技巧 1. 项目背景与挑战 文墨共鸣是一个将深度学习算法与传统水墨美学相结合的语义相似度分析系统,基于阿里达摩院的StructBERT大模型。在实际部署中,我们发现原始模型存在明显的显…...

lerobot so101机械臂锁死紧急救援!删除校准文件三步重生术

问题在调试校准lerobot so101机械臂,第二遍执行校准机械臂的命令lerobot-calibrate时,整个机械臂锁死,无法手动调整舵机: lerobot-calibrate \--robot.typeso101_follower \--robot.port/dev/ttyACM0 \--robot.idmy_awesome_follo…...

Qwen3-0.6B-FP8部署教程:在国产昇腾910B平台适配vLLM(需修改backend)可行性分析

Qwen3-0.6B-FP8部署教程:在国产昇腾910B平台适配vLLM(需修改backend)可行性分析 1. 引言:当轻量级大模型遇上国产算力 最近,很多朋友都在问一个问题:现在大模型动辄几十上百亿参数,部署起来对…...

JAVA集合—ArrayList源码深度解析

前言ArrayList 可能是每个 Java 开发者最早接触、使用最频繁的集合类。但你是否真正理解过它的内部实现?比如:扩容机制是什么?为什么扩容是 1.5 倍?add() 和 remove() 的时间复杂度分别是多少?本文基于 JDK 21 源码&am…...

R语言建模总“跑不通”?3步定位环境污染源:从.Rprofile到Sys.getenv()的深度诊断手册

第一章:R语言建模环境“跑不通”现象的典型表现与危害R语言建模环境中的“跑不通”并非指语法错误导致的立即报错,而是一类隐蔽性强、复现性差、定位困难的系统性失配问题。这类问题常在跨平台迁移、版本升级或协作开发中集中爆发,表面看似代…...

Windows风扇控制终极指南:Fan Control软件完全掌握

Windows风扇控制终极指南:Fan Control软件完全掌握 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trending/fa/Fa…...

哪些场景对IP精准度要求最高?金融、广告、CDN等五大领域解析

在IP查询工具的选型中,精准度往往是决定技术方案成败的关键。不同业务场景对定位误差的容忍度差异极大:内容推荐可以接受城市级偏差,但金融风控中一个IP的误判就可能造成数万元损失。本文梳理了五大对IP精准度要求最高的场景,并分…...

Phi-3 Forest Laboratory 实战:SpringBoot微服务集成AI能力指南

Phi-3 Forest Laboratory 实战:SpringBoot微服务集成AI能力指南 最近在做一个内部知识库问答系统的升级,需要集成一个轻量但聪明的语言模型来处理用户查询。试了几个方案,最后把目光锁定在了Phi-3 Forest Laboratory上。它体积小、推理快&am…...

低空经济新引擎:一文读懂固定翼无人机

低空经济新引擎:一文读懂固定翼无人机 引言 随着低空经济被正式确立为国家战略性新兴产业,无人机技术正从“小众极客”走向“大众应用”的广阔天地。在众多无人机形态中,固定翼无人机以其长航时、大载重、高效率的独特优势,成为物…...

深度解析:macOS微信防撤回插件WeChatIntercept的5个核心技术揭秘

深度解析:macOS微信防撤回插件WeChatIntercept的5个核心技术揭秘 【免费下载链接】WeChatIntercept 微信防撤回插件,一键安装,仅MAC可用,支持v3.7.0微信 项目地址: https://gitcode.com/gh_mirrors/we/WeChatIntercept 作为…...

从原理到实战:在虚拟环境中重现永恒之蓝对Win7的攻防

1. 永恒之蓝漏洞的前世今生 2017年那场席卷全球的网络风暴,至今仍让很多IT从业者心有余悸。当时一个名为"永恒之蓝"的漏洞利用工具被公开,随即引发了WannaCry勒索病毒的全球大爆发。医院系统瘫痪、企业数据被锁、政府机构停摆...这些场景都源于…...

使用Spring AI Alibaba构建智能体Agent妒

背景 在软件开发的漫长旅途中,"构建"这个词往往让人又爱又恨。爱的是,一键点击,代码变成产品,那是程序员最迷人的时刻;恨的是,维护那一堆乱糟糟的构建脚本,简直是噩梦。 在很多项目中…...

CentOS7.9下Confluence企业Wiki搭建全攻略:从MySQL8配置到破解激活避坑指南

CentOS7.9企业级Confluence Wiki部署实战:高可用架构与深度优化指南 当企业知识管理遇上技术债务,运维团队往往陷入文档散落、版本混乱的困境。Atlassian Confluence作为企业级Wiki解决方案,正成为组织数字化转型的核心中枢。本文将基于CentO…...

【NoC片上网络 On-Chip Network】第一章:从总线到NoC,解锁多核芯片的通信瓶颈

1. 多核芯片的通信革命:从总线到NoC的必然选择 十年前我第一次接触多核处理器设计时,团队还在为四核芯片的总线仲裁争得面红耳赤。当时谁也没想到,短短几年后我们会面临上百个核心的通信难题。就像城市交通从乡间小道突然变成超级都市的立体…...

2026年AI软件设计工具全景指南:6款主流产品横向对比

本文适合:产品经理、UI/UX设计师、非技术背景创业者、独立开发者,以及所有希望用AI工具加速软件产品从概念到交付的从业者。"输入一句话,生成一个应用"——这句话在两年前还像科幻,但在2026年,它已经是多款量…...

Tensorflow离线安装全攻略:从whl下载到ARM架构适配(附资源链接)

TensorFlow离线安装全攻略:从whl下载到ARM架构适配 在边缘计算和嵌入式开发领域,离线环境下的TensorFlow部署一直是工程师们的痛点。想象一下,当你带着开发板深入工厂现场调试,或是需要在保密网络中进行AI模型部署时,…...

GHelper深度解析:华硕笔记本性能控制的终极解决方案

GHelper深度解析:华硕笔记本性能控制的终极解决方案 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Flow, TUF, Strix, Scar…...

终极嵌入式图形渲染引擎:Adafruit-GFX-Library深度揭秘

终极嵌入式图形渲染引擎:Adafruit-GFX-Library深度揭秘 【免费下载链接】Adafruit-GFX-Library Adafruit GFX graphics core Arduino library, this is the core class that all our other graphics libraries derive from 项目地址: https://gitcode.com/gh_mirr…...

华为Hi1822 16G FC光纤卡驱动安装全攻略(CentOS7.6实测避坑指南)

华为Hi1822 16G FC光纤卡驱动安装全攻略(CentOS7.6实测避坑指南) 在数据中心运维领域,存储网络设备的驱动安装往往是系统部署中最容易踩坑的环节之一。作为华为旗舰级光纤通道卡,Hi1822 16G FC在性能与稳定性上表现优异&#xff0…...

3步破解Realtek 8192FU无线网卡Linux兼容性难题

3步破解Realtek 8192FU无线网卡Linux兼容性难题 【免费下载链接】rtl8192fu Realtek 8192FU Linux USB无线网卡驱动 项目地址: https://gitcode.com/gh_mirrors/rt/rtl8192fu 当你将崭新的Realtek 8192FU USB无线网卡插入Linux系统,却发现网络管理器一片空白…...

深入解析rewriteBatchedStatements:如何通过SQL重写提升MySQL批处理性能

1. 揭开rewriteBatchedStatements的神秘面纱 第一次听说rewriteBatchedStatements这个参数时,我正被一个批量导入数据的性能问题折磨得焦头烂额。当时我们的系统需要每小时处理数十万条用户行为数据,但MySQL的插入速度始终上不去。直到某天深夜调试时&am…...