1、AOT適合場景 Aot適合工具類型的項目使用,優點禁止反編 ,第一次啟動快,業務型項目或者反射多的項目不適合用AOT AOT更新記錄: 實實在在經過實踐的AOT ORM 5.1.4.117 +支持AOT 5.1.4.123 +支持CodeFirst和非同步方法 5.1.4.129-preview1 ...
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不支持