using System.Data.Entity;
using System.Collections.Generic;
public static void Main()
Sped.RegisterList.Add(new Register0000("0000", "abc123"));
Sped.RegisterList.Add(new Register0150("0150", "abc123"));
Sped.RegisterList.Add(new Register0150("0150", "abc123"));
Sped.RegisterList.Add(new Register0150("0150", "abc123"));
Sped.RegisterList.Add(new Register0150("0150", "abc123"));
var groupList = Sped.RegisterList.GroupBy(x => x.GetType());
foreach(var register in groupList)
using (var context = new EntityContext())
context.BulkInsert(register);
using (var context = new EntityContext())
FiddleHelper.WriteTable(context.Register0000.ToList());
FiddleHelper.WriteTable(context.Register0150.ToList());
public class EntityContext : DbContext
public EntityContext() : base(FiddleHelper.GetConnectionStringSqlServer()) { }
public DbSet<Register0000> Register0000 { get; set; }
public DbSet<Register0150> Register0150 { get; set; }
public ICollection<Register> RegisterList { get; private set; } = new List<Register>();
public abstract class Register
public Register(string name)
public Guid Id { get; set; }
public string Name { get; set; }
public class Register0000 : Register
public Register0000 (string name, string prop01) :base(name) => Prop01 = prop01;
public string Prop01 { get; set; }
public class Register0150 : Register
public Register0150 (string name, string prop02) :base(name) => Prop02 = prop02;
public string Prop02 { get; set; }