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>

浙公网安备 33010602011771号