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

NET8 ORM 使用AOT SqlSugar

.NET AOT8 基本上能够免强使用了, SqlSugar ORM也支持了CRUD 能在AOT下运行了

Nuget安装

SqlSugarCore

具体代码

StaticConfig.EnableAot = true;//启用AOT 程序启动执行一次就好了//用SqlSugarClient每次都new,不要用单例模式 
var db = new SqlSugarClient(new ConnectionConfig(){IsAutoCloseConnection = true,DbType = DbType.Sqlite,ConnectionString = "datasource=demo.db" },it =>{// Logging SQL statements and parameters before execution// 在执行前记录 SQL 语句和参数it.Aop.OnLogExecuting = (sql, para) =>{Console.WriteLine(UtilMethods.GetNativeSql(sql, para));};});return db;

已支持功能

//查询
var list=db.Queryable<Student>().ToList();
var list2=db.Queryable<Student>().ToDataTable();
var list3= db.Queryable<Student>().Select(it=>new { id=it.Id
}).ToList();  //插入 、删除和更新只要是实体目前测试下来 都OK
db.Insertable(new Student()
{Id = 1,Name = "aa"
}).ExecuteCommand();
db.Deleteable(new Student()
{Id = 1,Name = "aa"
}).ExecuteCommand();
db.Updateable(new Student()
{Id = 1,Name = "aa"
}).ExecuteCommand();//写sql也支持  
db.Ado.GetDataTable(sql);
db.Ado.ExecuteCommand(sql);

不支功能

//部分库建表不支持
//动态建类不支持

AOT配置教程

创建一个带AOT的类项目

新建一个rd.xml

<Directives><Application><Assembly Name="SqlSugar"  Dynamic="Required All"></Assembly>  </Application>
</Directives>

改项目文件

<Project Sdk="Microsoft.NET.Sdk.Web"><PropertyGroup><TargetFramework>net8.0</TargetFramework><Nullable>enable</Nullable><ImplicitUsings>enable</ImplicitUsings><InvariantGlobalization>true</InvariantGlobalization><PublishAot>true</PublishAot><Platforms>AnyCPU;x64</Platforms></PropertyGroup><ItemGroup><RdXmlFile Include="rd.xml" /></ItemGroup>

RdXmlFile这个重点引用我们新建的rd.xml (这个xml要能发布出去)

相关文章:

  • 设计模式解码:软件工程架构的航标
  • 线性表的概念
  • 基于模拟退火算法优化概率神经网络PNN的分类预测 - 附代码
  • 如何把小米路由器刷入OpenWRT系统并通过内网穿透工具实现公网远程访问
  • 移动硬盘打不开?正确操作方法分享!
  • 有什么好用的后勤管理软件?学校后勤服务要怎么提升满意度?
  • 【MySQL】聚合函数:汇总、分组数据
  • 谷歌浏览器F12/打开开发者工具网络就无法连接报错
  • webpack的安全保障是怎么做的?
  • 你是想被ChatGPT改变,还是改变软件开发的未来?丨IDCF
  • Difficulty-Aware Glaucoma Classification with Multi-rater Consensus Modeling
  • 力扣104. 二叉树的最大深度(java,DFS,BFS解法)
  • Ubuntu22.04离线安装uwsgi问题记录
  • MySQL集群高可用架构之MMM
  • MYSQL中的触发器TRIGGER
  • CentOS 7 防火墙操作
  • chrome扩展demo1-小时钟
  • E-HPC支持多队列管理和自动伸缩
  • FineReport中如何实现自动滚屏效果
  • Java-详解HashMap
  • Nacos系列:Nacos的Java SDK使用
  • Redis在Web项目中的应用与实践
  • Spring Cloud中负载均衡器概览
  • Twitter赢在开放,三年创造奇迹
  • Web设计流程优化:网页效果图设计新思路
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 百度贴吧爬虫node+vue baidu_tieba_crawler
  • 京东美团研发面经
  • 跨域
  • 跳前端坑前,先看看这个!!
  • 白色的风信子
  • Hibernate主键生成策略及选择
  • Salesforce和SAP Netweaver里数据库表的元数据设计
  • 翻译 | The Principles of OOD 面向对象设计原则
  • 智能情侣枕Pillow Talk,倾听彼此的心跳
  • #stm32驱动外设模块总结w5500模块
  • (差分)胡桃爱原石
  • (二)Eureka服务搭建,服务注册,服务发现
  • (附源码)springboot社区居家养老互助服务管理平台 毕业设计 062027
  • (原+转)Ubuntu16.04软件中心闪退及wifi消失
  • (转)shell调试方法
  • (转)原始图像数据和PDF中的图像数据
  • *2 echo、printf、mkdir命令的应用
  • .Net - 类的介绍
  • .NET Framework 服务实现监控可观测性最佳实践
  • .NET MVC、 WebAPI、 WebService【ws】、NVVM、WCF、Remoting
  • .NET 读取 JSON格式的数据
  • .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args
  • .net开发引用程序集提示没有强名称的解决办法
  • .NET设计模式(2):单件模式(Singleton Pattern)
  • /etc/apt/sources.list 和 /etc/apt/sources.list.d
  • :=
  • @PreAuthorize注解
  • @SpringBootApplication 包含的三个注解及其含义
  • [AHOI2009]中国象棋 DP,递推,组合数