NET8 ORM 使用AOT SqlSugar

.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要能发布出去)

相关推荐
百事牛科技27 分钟前
只可读不可改!PDF禁止修改实操方法
windows·pdf
老王的笔记v33 分钟前
42期 鼠鼠格式转换工具整合图片文档音视频转换,Windows和Mac免费使用
windows·开源·github·音视频
可爱系程序猿1 小时前
Windows 11 添加共享打印机提示 0x0000011b:从 RPC 到驱动架构排查
windows·rpc·架构
渣渣盟1 小时前
Nginx 从零到上手:Windows & Linux 双环境教程
linux·windows·nginx
魂祈梦1 小时前
windows终端乱码问题
windows
0566461 小时前
python高级——Python 类型提示与 Pydantic
网络·人工智能·windows·python·学习
小桥流水---人工智能2 小时前
Windows下Conda无法创建Python 3.11虚拟环境:从镜像源404到PackagesNotFoundError的完整排查与解决
windows·conda·python3.11
sukalot2 小时前
windows 驱动实例分析系列: wireguard-nt驱动分析-api篇(二)
windows
MNLoser3 小时前
AI agent开发——LangGraph接入持久化
linux·人工智能·windows·python
小桥流水---人工智能3 小时前
Windows下RTX 5070安装PyTorch GPU完整教程:Python 3.11 + PyTorch 2.8.0 + CUDA 12.9
pytorch·windows·python3.11