.NET CORE 完美支持AOT 的 ORM SqlSugar 教程
1、AOT适合产场
Aot适合工具类型的项目使用,优点禁止反编 ,第一次启动快,业务型项目或者反射多的项目不适合用AOT
AOT更新记录: 实实在在经过实践的AOT ORM
5.1.4.117 +支持AOT
5.1.4.123 +支持CodeFirst和异步方法
5.1.4.129-preview12+ 修复 db.Unionall bug
5.1.4.129-preview17+ 修复 db.Union bug
5.1.4.135-preview05+ 修复 查单列数据 出错
5.1.4.140 修复 db.Storageable(data).WhereColumns(string [])重载引起的问题(导航更新也使用该方法)
5.1.4.141导航查询一对一查出来空
5.1.4.148 优化发布时的警告数据
2、SqlSugar AOT优势
高性能启动快,功能成熟完全可以投入生产

3、数据库支持
| SqlServer | 支持 (项目文件 InvariantGlobalization要改为false) |
| MySql | 支持 |
| Sqlite | 支持 |
| PostgresSQL | 支持 (安装最新的Npgsql) |
| Oracle | 不支持 (官方驱动不支持) |
| 其他 | 未测试 |
4、Demo下载
解压后直接布就可以发布成AOT文件了
newaot.rar (下载后更新一下SqlSugar)

5、AOT教程
使用AOT需要简单配置一下如下:
5.1 安装Nuget
SqlSugarCore
5.2 启用AOT和创建DB
//启用AOT 程序启动执行一次就好了
StaticConfig.EnableAot = true;
//用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;
5.3 AOT 配置教程
创建一个带AOT的类项目

新建一个rd.xml
<Directives>
<Application>
<Assembly Name="SqlSugar" Dynamic="Required All">
</Assembly>
<Assembly Name="启动项目名" 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要能发布出去)
SqlServer常见问题
SqlServer如果报下面配置相关的错要改成false
<InvariantGlobalization>false</InvariantGlobalization>
Sqlserver在web下的Demo
AotTestServerWeb.zip
发布AOT

用户问题汇总
https://www.donet5.com/ask/9/23451
不支持功能
//用到dynamic参数的方法
注意说明
AOT还有很多功能有限制,我个人认为用来开发小工具还可以,大点的项目暂时不要用,在反射上面有很多限制
.net API只支持了最基本的功能很多功能没有
.net MVC不支持
.NET CORE 完美支持AOT 的 ORM SqlSugar 教程的更多相关文章
- hisql ORM 框架研究(国内第一个支持HANA的ORM框架)
HiSql 操作说明文档 V1.0 下一代ORM框架 国内第一个支持HANA的ORM框架 hisql源码下载 git clone https://github.com/tansar/HiSql.git ...
- QtCreator动态编译jsoncpp完美支持x86和arm平台
如果是做嵌入式开发. 在Qt下支持JSon最好的办法,可能不是采用qjson这个库.QJson这个库的实例只提供了x86环境下的编译方法. Installing QJson-------------- ...
- nginx完美支持yii2框架
nginx完美支持yii2框架 server {listen 80;server_name www.peita.net peita.net;# default_server;access_log /d ...
- nginx完美支持tp框架
nginx完美支持tp框架 server { listen 80; server_name mit.520m.com.cn; access_log /data/wwwlogs/mit.520m.com ...
- Android 使Volley完美支持自定义证书的Https
其实在最早的版本里,Volley甚至是不支持https协议的,只能跑http,当然你也可以自己修改他的源码让他支持,如今volley的代码经过一些改进以后, 已经可以完美支持https协议了,无论是在 ...
- 惊喜:opera换webkit内核后完美支持SDCH压缩协议
csdn发邮件警告说再不发文章就取消我的专家头衔了.呵呵,其实我只是在csdn暴露了我的帐号密码以后不得已把csdn密码修改成一个我自己都记不住的货,所以很少上来了. 言归正传.我们从去年就在QQ空间 ...
- 使Asp.net Core同时支持输出Json/Xml
我们知道Asp.net Core是支持输出为Json格式的.同时也支持输出为xml格式.只要我们正确的配置.并在Request时指定正确的Accept,即可根据不同的Header来输出不同的格式. 前 ...
- Retrofit 2.0 超能实践(一),okHttp完美支持Https传输
http: //blog.csdn.net/sk719887916/article/details/51597816 Tamic首发 前阵子看到圈子里Retrofit 2.0,RxJava(Andro ...
- Retrofit 2.0 超能实践,完美支持Https传输
http://blog.csdn.NET/sk719887916/article/details/51597816 前阵子看到圈子里Retrofit 2.0,RxJava(Android), OkHt ...
- 使Volley完美支持自定义证书的Https
其实在最早的版本里,Volley甚至是不支持https协议的,只能跑http,当然你也可以自己修改他的源码让他支持,如今volley的代码经过一些改进以后, 已经可以完美支持https协议了,无论是在 ...
随机推荐
- TorchV的RAG实践分享(三):解析llama_index的数据存储结构和召回策略过程
1.前言 LlamaIndex是一个基于LLM的数据处理框架,在RAG领域非常流行,简单的几行代码就能实现本地的文件的对话功能,对开发者提供了极致的封装,开箱即用. 本文以官方提供的最简单的代理示例为 ...
- 学习笔记-Kafka消息队列
官网地址:https://kafka.apache.org/ 一.认识kafka 1.认识kafka Apache Kafka是Apache软件基金会的开源的流处理平台,该平台提供了消息的订阅与发布的 ...
- JNDI注入分析
JNDI介绍 JNDI(Java Naming and Directory Interface,Java命名和目录接口)是为Java应用程序提供命名和目录访问服务的API,允许客户端通过名称发现和查找 ...
- KingbaseES自动生成列介绍
在KingbaseES中create table语句支持GENERATED column(生成列). 生成列是一种特别的列类型,它的值基于其他列的值计算得出.因此,生成列之于列,有点像视图之于表的关系 ...
- KingbaseES V8R3集群运维案例之---流复制异步同步及全同步模式配置
案例说明: 通过案例描述KingbaseES V8R3集群异步.同步及全同步强一致性配置,本案例为一主二备的架构. 适用版本: KingbaseES V8R3 集群架构: 集群复制配置参数说明: 1) ...
- 华为3D建模服务(3D Modeling Kit),轻松构建高质量3D模型
华为3D建模服务(3D Modeling Kit)是华为在图形图像领域又一技术开放,面向有3D模型.动画制作等能力诉求的应用开发者,基于AI技术,提供3D物体模型自动生成和PBR材质生成功能,实现3D ...
- MongoDB命令行交互
命令行交互 命令行交互一般是学习数据库的第一步,不过这些命令在后续用的比较少,了解即可. 角色命令 创建角色 use admin db.createUser({"user": &q ...
- Mysql之刷盘机制
一.刷盘机制总览 刷盘过程 mysql刷脏数据在写redo之后,逻辑跟oracle一致. checkpoint/commit -> 内存中的redo到redolog文件 -> 内存中的脏数 ...
- Spring Cloud Sleuth:分布式请求链路跟踪
Spring Cloud Sleuth:分布式请求链路跟踪 SpringCloud学习教程 SpringCloud Spring Cloud Sleuth 是分布式系统中跟踪服务间调用的工具,它可以直 ...
- linux 性能自我学习 ———— 关于内存 [七]
前言 内存的基本知识,将在操作系统篇中详细介绍,这里只说明如何排查问题. 正文 内存的分配和回收: 在malloc 是c 标准库中的内存分配函数,对应到系统调用上,有两种实现方式,一种是brk()和 ...