AOT更新记录
5.1.4.117 +支持AOT
5.1.4.123 +支持CodeFirst和异步方法
SqlSugar安装
SqlSugarCore |
Demo下载
解压后直接发布就可以发布成AOT文件了
启用AOT兼容
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
StaticConfig.EnableAot = true;//启用AOT 程序启动执行一次就好了 //用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; |
已支持功能
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
var list=db.Queryable<Student>().ToList(); var list2=db.Queryable<Student>().ToDataTable(); var list3= db.Queryable<Student>().Select(it=>new { id=it.Id }).ToList(); //插入 、删除和更新只要是实体目前测试下来 都OK db.Insertable(new Student() { Id = 1, Name = "aa" }).ExecuteCommand(); db.Deleteable(new Student() { Id = 1, Name = "aa" }).ExecuteCommand(); db.Updateable(new Student() { Id = 1, Name = "aa" }).ExecuteCommand(); //写sql也支持 db.Ado.GetDataTable(sql); db.Ado.ExecuteCommand(sql); |
不支持功能
//用到dynamic参数的方法 |
AOT配置教程
创建一个带AOT的类项目
新建一个rd.xml
1 2 3 4 5 6 7 8 |
<Directives> <Application> <Assembly Name="SqlSugar" Dynamic="Required All"> </Assembly> <Assembly Name="启动项目名" Dynamic="Required All"> </Assembly> </Application> </Directives> |
改项目文件
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<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
1 |
<InvariantGlobalization>false</InvariantGlobalization> |
Sqlserver在web下的Demo AotTestServerWeb.zip
发布AOT
未来计划
根据用户反馈完善AOT
用户问题汇总
https://www.donet5.com/ask/9/23451
注意说明
AOT还有很多功能有限制,我个人认为用来开发小工具还可以,大点的项目暂时不要用,在反射上面有很多限制
.net API只支持了最基本的功能很多功能没有
.net MVC不支持