.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协议了,无论是在 ...
随机推荐
- Nancy如何接收POST过来的Json数据
当Nancy版本为2.0.0.0时 string postData = Request.Body.AsString; 当Nancy版本为1.4.5.0时 自己写一个扩展方法,代码如下 /// < ...
- Oracle 已存在数据的大表 改 分区表
创建表,插入测试数据 -- Create table create table LXW_TEST ( CDATE DATE, T1 NUMBER, T2 VARCHAR2(2) ) ; insert ...
- 做easyexcel遇到的问题数据库采用的mybatis-plus
导入坐标 <!-- easyexcel依赖--><dependency> <groupId>com.alibaba</groupId> <arti ...
- KingbaseES角色和权限介绍
KingbaseES 使用角色的概念管理数据库访问权限.为了方便权限管理,用户可以建立多个角色,对角色进行授权和权限回收,并把角色授予其他用户. 数据库初始化时,会创建一个超级用户的角色:system ...
- KingbaseES 名词解释之timeline
timeline定义 每当归档文件恢复完成后,创建一个新的时间线用来区别新生成的WAL记录.WAL文件名由时间线和日志序号组成 引入timeline的意义 为了理解引入时间线的背景,我们来分析一下,如 ...
- UE4中的C++编程简介
对官方文档的学习链接 利用UE创建一个C++基类 在编辑器中可以选择父类,根据这个父类我们可以创建一个基类用于后续的蓝图类制作. 以Actor父类为例创建基类,其头文件会包含一个构造函数,一个Tick ...
- #dp,齐肯多夫定理#CF126D Fibonacci Sums
题目 \(T(T\leq 10^5)\) 组数据,每次给定数字 \(n(n\leq 10^{18})\), 问有多少种方案将 \(n\) 分解成若干个互不相同的斐波那契数 分析 如果找到一个方案使得所 ...
- #期望dp#51nod 2015 诺德街
题目传送门 分析 禁不住 QuantAsk 的诱惑(bushi) 考虑一条路线可以由若干段 \(1-2-\dots-n-\dots-2\) 以及 最后一段 \(1-\dots-x\) 组成. 对于最后 ...
- Java 编程指南:入门,语法与学习方法
Java 是什么? Java 是一种流行的编程语言,诞生于 1995 年.由 Oracle 公司拥有,运行在超过 30 亿台设备上.Java 可以用于: 移动应用程序(尤其是 Android 应用) ...
- Cert Manager 申请SSL证书流程及相关概念-二
中英文对照表 英文 英文 - K8S CRD 中文 备注 certificates Certificate 证书 certificates.cert-manager.io/v1 certificate ...