Skip to content

Instantly share code, notes, and snippets.

@ErikSchierboom
Created May 3, 2017 08:32
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ErikSchierboom/cf3f73740b6e088f2fb6e35fef32675f to your computer and use it in GitHub Desktop.
Save ErikSchierboom/cf3f73740b6e088f2fb6e35fef32675f to your computer and use it in GitHub Desktop.
Bulk insert MySQL using EF Core
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Logging;
namespace DbBulkPerformance
{
public class Program
{
public class MySqlContext : DbContext
{
public DbSet<Person> Persons { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
var loggerFactory = new LoggerFactory();
loggerFactory.AddConsole();
optionsBuilder.UseLoggerFactory(loggerFactory);
optionsBuilder.UseMySql(@"Server=docker-vm;Database=PerformanceTest;Uid=test;Pwd=test;");
}
}
public class SqlServerContext : DbContext
{
public DbSet<Person> Persons { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
var loggerFactory = new LoggerFactory();
loggerFactory.AddConsole();
optionsBuilder.UseLoggerFactory(loggerFactory);
optionsBuilder.UseSqlServer(@"Server=(localdb)\mssqllocaldb;Database=PerformanceTest;Trusted_Connection=True;");
}
}
public class Person
{
[Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
public int Id { get; set; }
public string Name { get; set; }
}
public static void Main(string[] args)
{
var persons = new[]
{
new Person { Id = 1, Name = "John" },
new Person { Id = 2, Name = "Paul" },
new Person { Id = 3, Name = "George" },
};
using (var mySqlContext = new MySqlContext())
{
foreach (var person in persons)
mySqlContext.Add(person);
mySqlContext.SaveChanges();
}
using (var sqlServerContext = new SqlServerContext())
{
foreach (var person in persons)
sqlServerContext.Add(person);
sqlServerContext.SaveChanges();
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment