当前位置: 首页 > article >正文

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


http://www.kler.cn/news/133644.html

相关文章:

  • RabbitMQ-高级篇-黑马程序员
  • jsp中使用PDF.js实现pdf文件的预览
  • php mysql 如何处理查询中存在正则特殊字符的查询
  • Element-UI el-select下拉框多选实现全选
  • 生命在于学习——主板跳线的学习
  • OPPO发布AndesGPT大模型;Emu Video和Emu Edit的新突破
  • 正则表达式去掉代码末尾的数字
  • Hive默认分割符、存储格式与数据压缩
  • Linux环境的Windows子系统
  • C语言基础篇4:变量、存储、库函数
  • 【Seata源码学习 】篇三 seata客户端全局事务开启、提交与回滚
  • 【hive-解决】HiveAccessControlException Permission denied: CREATEFUNCTION
  • Linux 网络:PMTUD 简介
  • 麦克风阵列入门
  • Linux - 物理内存管理 - memmap
  • java游戏制作-拼图游戏
  • Qt控件样式表
  • shell之file命令
  • 指南:关于帮助中心需要注意的一些细节
  • java大作业中的文件操作
  • pnpm的安装及其使用
  • Nginx(七) root和alias的区别及详细测试
  • C# 实现腾讯云多路直播流的云端混合录制
  • Python学习笔记--Python关键字yield
  • 潇洒郎: 小白一次性成功——小米红米手机解BL锁+ ROOT-刷面具
  • CentOS挂载:解锁文件系统的力量
  • websocket学习笔记【springboot+websocket聊天室demo】
  • PostgreSQL 数据类型
  • 基于JavaWeb+SSM+社区居家养老服务平台—颐养者端微信小程序系统的设计和实现
  • 软件质量保护与测试(第2版)学习总结第十三章 集成测试