首页 > 数据库 >NET8 ORM 使用AOT SqlSugar

NET8 ORM 使用AOT SqlSugar

时间:2023-11-17 22:44:19浏览次数:45  
标签:ExecuteCommand db AOT ORM sql var new SqlSugar

AOT介绍

.Net8的本地预编机器码AOT,它几乎进行了100%的自举。微软为了摆脱C++的钳制,做了很多努力。也就是代码几乎是用C#重写,包括了虚拟机,GC,内存模型等等。而需要C++做的,也就仅仅是引导程序,本篇通过代码来看下这段至关重要的引导程序的运作模式。

 

支持功能

 

SqlSugar ORM使用AOT


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

标签:ExecuteCommand,db,AOT,ORM,sql,var,new,SqlSugar
From: https://www.cnblogs.com/sunkaixuan/p/17839825.html

相关文章

  • C#winform学习6(部门部分)
    1.部门列表显示listview首先需要在listview中设定相关属性 打开这个  代码:privatevoidDeptForm_Load(objectsender,EventArgse){//初始化列表setListView();}///<summary>///初始化部门列表......
  • 2023-11-17 记录formly+antd+dayjs的shortcuts设置筛选项全部、昨天、今天
    业务中需要用到formly+antd的组件DatePicker日期组件,其中要给该组件添加筛选项(如:全部、昨天、今天),日期的格式化用到了日期插件dayjs(注意不是momentjs)shortcuts=[{text:'全部',onClick:()=>([null,null])},...shortcutsData]如果只是设置昨天或者今天,只需传开始和结束......
  • 关于TRANSFORM_TEX的一些问题
    这个函数是用来控制shader面板中的tilling和offset的,本质为uv*_MainTex_ST.xy+_MainTex_ST.zw;但是使用TRANSFORM_TEX时需要注意的是,函数内部似乎没有封装完整,假如有类似于TRANSFORM_TEX(uv+20,_MainTex)这样形式的需求,是会报错的原因也很简单,它里面没有带括号,所......
  • information
    表字段information_schema.schemataschema_nameinformation_schema.tablestables_nameinformation_schema.columnscolumn_nameInformation_schema(数据库)(MySQL中默认的数据库)SCHEMATA(表):存储了MySQL下每一个数据库的相关信息......
  • C#Winform使用NPOI获取word中的数据
    ......
  • C#使用SqlSugar操作MySQL数据库实现简单的增删改查
    ......
  • 机器学习——Transformer
    10.6.2节中比较了卷积神经网络(CNN)、循环神经网络(RNN)和自注意力(self-attention)。值得注意的是,自注意力同时具有并行计算和最短的最大路径长度这两个优势。因此,使用自注意力来设计深度架构是很有吸引力的。对比之前仍然依赖循环神经网络实现输入表示的自注意力模型 (Cheng etal.,......
  • The 2020 ICPC Asia Shenyang Regional Programming Contest M. United in Stormwind
    Preface先补一下这周一队友VP的ICPC2020沈阳,这场由于我在补作业+晚上有大物实验,因此只参与了中间一个多小时,纯口胡了几个简单题因为我没怎么参与所以过的其它题就不写补题+写博客了,毕竟队友会等于我会那么就主要把我比赛时看了但没啥思路的M补了,AI祁神好像在补那我就不管了,后面......
  • .NET8.0 AOT 经验分享 FreeSql/FreeRedis/FreeScheduler 均已通过测试
    2023年11月15日,对.net的开发圈是一个重大的日子,.net8.0正式版发布。圈内已经预热了有半个月有余,性能不断超越,开发体验越来越完美,早在.net5.0的时候就各种吹风Aot编译,直到6.07.0使用仍然比较麻烦,我个人比较期待本次更新的aot体验。有的群友几个小时都等不了啦,半夜就开始更新预......
  • Only export to PDF format from ReportViewer add-in
    Hiall,"OnlyexporttoPDFformatfromReportVieweradd-in"...Isthispossible?Rightnowthereportviewerhastwooptionsofexportingthecurrentreport-ExcelandPDF...IsitpossibletohavePDFastheonlyoption.Idon'twantmyclient......