c# aot orm 框架测试 mysql

SqlSugar 的文档比较齐全,一次通过:https://www.donet5.com/Home/Doc?typeId=2574,但是 SqlSugar Aot 发布在 40M 左右,感觉太大了点。

FreeSql 的 AOT 文档就不太友好了,试了一下各种报错,最后发现要使用 FreeSql.Provider.MySqlConnector 包而不是 FreeSql.Provider.MySql 包。发布后 16M,还是比较小的。

Program.cs 文件:

 internal class Program
 {
     static void Main(string[] args)
     {
         try
         {
             //FreeSql.Internal.Utils.ListOrArrayToList<List<byte>>(null); //加这行,或者把它配置到 rd.xml
             var fsql = new FreeSql.FreeSqlBuilder()
                 .UseAdoConnectionPool(true)
                 .UseConnectionString(FreeSql.DataType.MySql, "Data Source=;Port=3306;User ID=;Password=; Initial Catalog=;SslMode=none;Min pool size=1;Connection Timeout=1")
                 .Build();
             var t1 = fsql.Insert(new Student() { SchoolId = 1, Name = "freesql" }).ExecuteAffrows();
         }
         catch (Exception err)
         {
             Console.WriteLine(err.Message + err.StackTrace.ToString());
         }
         Console.ReadLine();
     }
 }
 public class Student
 {
     [Column(IsIdentity = true, IsPrimary = true)]
     public int Id { get; set; }
     public int? SchoolId { get; set; }
     public string? Name { get; set; }
 }

rd.xml 文件:

<Directives>
  <Application>
    <Assembly Name="FreeSql"  Dynamic="Required All">    </Assembly>
    <Assembly Name="FreeSql.Provider.MySqlConnector"  Dynamic="Required All">    </Assembly>
    <Assembly Name="ConsoleFreeSqlAot"  Dynamic="Required All">    </Assembly>
  </Application>
</Directives>

csproj 文件:

<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<PublishAot>true</PublishAot>
<OptimizationPreference>Size</OptimizationPreference>
<InvariantGlobalization>true</InvariantGlobalization>
<StackTraceSupport>false</StackTraceSupport>
<BaseOutputPath>\bin\Debug</BaseOutputPath>

</PropertyGroup>

<ItemGroup>
<PackageReference Include="FreeSql" Version="3.5.213" />
<PackageReference Include="FreeSql.Provider.MySqlConnector" Version="3.5.213" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.4" />
</ItemGroup>
<ItemGroup>
<RdXmlFile Include="rd.xml" />
</ItemGroup>
</Project>

 

posted @ 2025-09-30 11:19  echo三毛  阅读(14)  评论(0)    收藏  举报