.NET CORE 完美支持AOT 的 ORM SqlSugar 教程

  • .NET CORE 完美支持AOT 的 ORM SqlSugar 教程已关闭评论
  • 95 次浏览
  • A+
所属分类:.NET技术
摘要

Aot适合工具类型的项目使用,优点禁止反编 ,第一次启动快,业务型项目或者反射多的项目不适合用AOT 


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优势

高性能启动快,功能成熟完全可以投入生产

.NET CORE 完美支持AOT 的 ORM  SqlSugar  教程

3、数据库支持

SqlServer 支持 (项目文件 InvariantGlobalization要改为false)
MySql 支持  
Sqlite 支持
PostgresSQL 支持  (安装最新的Npgsql)
Oracle 不支持 (官方驱动不支持)
其他 未测试

4、Demo下载

解压后直接布就可以发布成AOT文件了

.NET CORE 完美支持AOT 的 ORM  SqlSugar  教程newaot.rar (下载后更新一下SqlSugar)

.NET CORE 完美支持AOT 的 ORM  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的类项目 

.NET CORE 完美支持AOT 的 ORM  SqlSugar  教程

新建一个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  .NET CORE 完美支持AOT 的 ORM  SqlSugar  教程AotTestServerWeb.zip  

发布AOT

.NET CORE 完美支持AOT 的 ORM  SqlSugar  教程

 

 

用户问题汇总

https://www.donet5.com/ask/9/23451

不支持功能

//用到dynamic参数的方法

注意说明

AOT还有很多功能有限制,我个人认为用来开发小工具还可以,大点的项目暂时不要用,在反射上面有很多限制

.net API只支持了最基本的功能很多功能没有

.net MVC不支持