.NET AOT8 基本上能够免强使用了, SqlSugar ORM也支持了CRUD 能在AOT下运行了
Nuget安装
SqlSugarCore
具体代码
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;
已支持功能
//查询
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);
不支功能
//部分库建表不支持
//动态建类不支持
AOT配置教程
创建一个带AOT的类项目
新建一个rd.xml
<Directives><Application><Assembly Name="SqlSugar" 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要能发布出去)