mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-06-18 20:08:15 +08:00
update
This commit is contained in:
@ -0,0 +1,21 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>netcoreapp2.1</TargetFramework>
|
||||
|
||||
<IsPackable>false</IsPackable>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Dapper" Version="1.50.5" />
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.9.0" />
|
||||
<PackageReference Include="MySql.Data" Version="8.0.13" />
|
||||
<PackageReference Include="xunit" Version="2.4.0" />
|
||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.0" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\FreeSql\FreeSql.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
91
FreeSql.Tests.PerformanceTests/MySqlAdoTest.cs
Normal file
91
FreeSql.Tests.PerformanceTests/MySqlAdoTest.cs
Normal file
@ -0,0 +1,91 @@
|
||||
using FreeSql.DataAnnotations;
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.Text;
|
||||
using Xunit;
|
||||
using Dapper;
|
||||
using System.Linq;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace FreeSql.Tests.PerformanceTest {
|
||||
public class MySqlAdoTest {
|
||||
|
||||
[Fact]
|
||||
public void Query() {
|
||||
var sb = new StringBuilder();
|
||||
var time = new Stopwatch();
|
||||
|
||||
time.Restart();
|
||||
List<xxx> dplist1 = null;
|
||||
using (var conn = g.mysql.Ado.MasterPool.Get()) {
|
||||
dplist1 = Dapper.SqlMapper.Query<xxx>(conn.Value, "select * from song").ToList();
|
||||
}
|
||||
time.Stop();
|
||||
sb.AppendLine($"Elapsed: {time.Elapsed}; Query Entity Counts: {dplist1.Count}; ORM: Dapper");
|
||||
|
||||
time.Restart();
|
||||
List<(int, string, string)> dplist2 = null;
|
||||
using (var conn = g.mysql.Ado.MasterPool.Get()) {
|
||||
dplist2 = Dapper.SqlMapper.Query<(int, string, string)>(conn.Value, "select * from song").ToList();
|
||||
}
|
||||
time.Stop();
|
||||
sb.AppendLine($"Elapsed: {time.Elapsed}; Query Tuple Counts: {dplist2.Count}; ORM: Dapper");
|
||||
|
||||
time.Restart();
|
||||
List<dynamic> dplist3 = null;
|
||||
using (var conn = g.mysql.Ado.MasterPool.Get()) {
|
||||
dplist3 = Dapper.SqlMapper.Query<dynamic>(conn.Value, "select * from song").ToList();
|
||||
}
|
||||
time.Stop();
|
||||
sb.AppendLine($"Elapsed: {time.Elapsed}; Query Dynamic Counts: {dplist3.Count}; ORM: Dapper");
|
||||
|
||||
|
||||
|
||||
|
||||
time.Restart();
|
||||
var t3 = g.mysql.Ado.Query<xxx>("select * from song");
|
||||
time.Stop();
|
||||
sb.AppendLine($"Elapsed: {time.Elapsed}; Query Entity Counts: {t3.Count}; ORM: FreeSql*");
|
||||
|
||||
time.Restart();
|
||||
var t4 = g.mysql.Ado.Query<(int, string, string)>("select * from song");
|
||||
time.Stop();
|
||||
sb.AppendLine($"Elapsed: {time.Elapsed}; Query Tuple Counts: {t4.Count}; ORM: FreeSql*");
|
||||
|
||||
time.Restart();
|
||||
var t5 = g.mysql.Ado.Query<dynamic>("select * from song");
|
||||
time.Stop();
|
||||
sb.AppendLine($"Elapsed: {time.Elapsed}; Query Dynamic Counts: {t3.Count}; ORM: FreeSql*");
|
||||
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ToList() {
|
||||
var sb = new StringBuilder();
|
||||
var time = new Stopwatch();
|
||||
|
||||
time.Restart();
|
||||
List<xxx> dplist1 = null;
|
||||
using (var conn = g.mysql.Ado.MasterPool.Get()) {
|
||||
dplist1 = Dapper.SqlMapper.Query<xxx>(conn.Value, "select * from song").ToList();
|
||||
}
|
||||
time.Stop();
|
||||
sb.AppendLine($"Elapsed: {time.Elapsed}; Query Entity Counts: {dplist1.Count}; ORM: Dapper");
|
||||
|
||||
|
||||
time.Restart();
|
||||
var t3 = g.mysql.Select<xxx>().ToList();
|
||||
time.Stop();
|
||||
sb.AppendLine($"Elapsed: {time.Elapsed}; ToList Entity Counts: {t3.Count}; ORM: FreeSql*");
|
||||
}
|
||||
|
||||
[Table(Name = "song")]
|
||||
class xxx {
|
||||
public int Id { get; set; }
|
||||
public string Title { get; set; }
|
||||
public string Url { get; set; }
|
||||
public DateTime Create_time { get; set; }
|
||||
public bool Is_deleted { get; set; }
|
||||
}
|
||||
}
|
||||
}
|
39
FreeSql.Tests.PerformanceTests/g.cs
Normal file
39
FreeSql.Tests.PerformanceTests/g.cs
Normal file
@ -0,0 +1,39 @@
|
||||
using Microsoft.Extensions.Logging;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
|
||||
public class g {
|
||||
|
||||
public static IFreeSql mysql = new FreeSql.FreeSqlBuilder()
|
||||
.UseConnectionString(FreeSql.DataType.MySql, "Data Source=127.0.0.1;Port=3306;User ID=root;Password=root;Initial Catalog=cccddd;Charset=utf8;SslMode=none;Max pool size=10")
|
||||
.UseLogger(new LoggerFactory().CreateLogger("FreeSql.MySql"))
|
||||
.UseAutoSyncStructure(false)
|
||||
.Build();
|
||||
|
||||
//public static IFreeSql sqlserver = new FreeSql.FreeSqlBuilder()
|
||||
// .UseConnectionString(FreeSql.DataType.SqlServer, "Data Source=.;Integrated Security=True;Initial Catalog=cms;Pooling=true;Max Pool Size=10")
|
||||
// .UseLogger(new LoggerFactory().CreateLogger("FreeSql.SqlServer"))
|
||||
// .UseAutoSyncStructure(false)
|
||||
// .Build();
|
||||
|
||||
//public static IFreeSql pgsql = new FreeSql.FreeSqlBuilder()
|
||||
// .UseConnectionString(FreeSql.DataType.PostgreSQL, "Host=192.168.164.10;Port=5432;Username=postgres;Password=123456;Database=tedb;Pooling=true;Maximum Pool Size=10")
|
||||
// .UseLogger(new LoggerFactory().CreateLogger("FreeSql.PostgreSQL"))
|
||||
// .UseAutoSyncStructure(false)
|
||||
// .UseSyncStructureToLower(true)
|
||||
// .Build();
|
||||
|
||||
//public static IFreeSql oracle = new FreeSql.FreeSqlBuilder()
|
||||
// .UseConnectionString(FreeSql.DataType.Oracle, "user id=user1;password=123456;data source=//127.0.0.1:1521/XE;Pooling=true;Max Pool Size=10")
|
||||
// .UseLogger(new LoggerFactory().CreateLogger("FreeSql.Oracle"))
|
||||
// .UseAutoSyncStructure(false)
|
||||
// .Build();
|
||||
|
||||
//public static IFreeSql sqlite = new FreeSql.FreeSqlBuilder()
|
||||
// .UseConnectionString(FreeSql.DataType.Sqlite, @"Data Source=|DataDirectory|\document.db;Attachs=xxxtb.db;Pooling=true;Max Pool Size=10")
|
||||
// .UseLogger(new LoggerFactory().CreateLogger("FreeSql.Sqlite"))
|
||||
// .UseAutoSyncStructure(false)
|
||||
// .Build();
|
||||
}
|
Reference in New Issue
Block a user