Commit 3c14c8b6 authored by James Law's avatar James Law Committed by Nick Craver

Added EntityFrameworkCore performance tests (#778)

parent fb443385
using BenchmarkDotNet.Attributes;
using Dapper.Tests.Performance.Linq2Sql;
using Microsoft.EntityFrameworkCore;
using System;
using System.Data.Linq;
using System.Linq;
namespace Dapper.Tests.Performance
{
public class EFCoreBenchmarks : BenchmarkBase
{
private EntityFrameworkCore.EFCoreContext Context;
private static readonly Func<DataClassesDataContext, int, Linq2Sql.Post> compiledQuery =
CompiledQuery.Compile((DataClassesDataContext ctx, int id) => ctx.Posts.First(p => p.Id == id));
[Setup]
public void Setup()
{
BaseSetup();
Context = new EntityFrameworkCore.EFCoreContext(_connection.ConnectionString);
}
[Benchmark(Description = "Normal")]
public Post Normal()
{
Step();
return Context.Posts.First(p => p.Id == i);
}
[Benchmark(Description = "SqlQuery")]
public Post SqlQuery()
{
Step();
return Context.Posts.FromSql("select * from Posts where Id = {0}", i).First();
}
[Benchmark(Description = "No Tracking")]
public Post NoTracking()
{
Step();
return Context.Posts.AsNoTracking().First(p => p.Id == i);
}
}
}
\ No newline at end of file
......@@ -17,6 +17,8 @@
<!--<PackageReference Include="BLToolkit" Version="4.3.6" />-->
<PackageReference Include="EntityFramework" Version="6.1.3" />
<PackageReference Include="FirebirdSql.Data.FirebirdClient" Version="5.9.0.1" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="1.1.2" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="1.1.2" />
<PackageReference Include="Microsoft.SqlServer.Compact" Version="4.0.8876.1" />
<PackageReference Include="Microsoft.SqlServer.Types" Version="14.0.314.76" />
<PackageReference Include="MySql.Data" Version="7.0.7-m61" />
......
using Microsoft.EntityFrameworkCore;
namespace Dapper.Tests.Performance.EntityFrameworkCore
{
public class EFCoreContext : DbContext
{
private readonly string _connectionString;
public EFCoreContext(string connectionString)
{
_connectionString = connectionString;
}
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) => optionsBuilder.UseSqlServer(_connectionString);
public DbSet<Post> Posts { get; set; }
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment