.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優勢

高性能啓動快,功能成熟完全可以投入生產

image.png

3、數據庫支持

SqlServer 支持 (項目文件 InvariantGlobalization要改爲false)
MySql 支持  
Sqlite 支持
PostgresSQL 支持  (安裝最新的Npgsql)
Oracle 不支持 (官方驅動不支持)
其他 未測試

4、Demo下載

解壓後直接布就可以發佈成AOT文件了

newaot.rar (下載後更新一下SqlSugar)

image.png

 

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的類項目 

image.png

新建一個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

image.png

 

 

用戶問題彙總

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

不支持功能

//用到dynamic參數的方法

注意說明

AOT還有很多功能有限制,我個人認爲用來開發小工具還可以,大點的項目暫時不要用,在反射上面有很多限制

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

.net MVC不支持

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章