using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Microsoft.EntityFrameworkCore;
using System.Collections.Generic;
using Microsoft.Data.SqlClient;
public static void Main()
using (var context = new EntityContext())
context.Database.EnsureCreated();
using (var context = new EntityContext())
var date = DateTime.Now.AddYears(-2);
.Where(x => x.IsActive && x.LastLogin < date)
.InsertFromQuery("bck_Customer", x => new { x.CustomerID, x.Name, x.Email });
FiddleHelper.WriteTable("bck_Customer", context.BackupCustomers.AsNoTracking().ToList());
public static void GenerateData()
using (var context = new EntityContext())
context.Customers.Add(new Customer() { Name = "Jonathan", Email = "info@zzzprojects.com", IsActive = true, LastLogin = DateTime.Now.AddYears(-3) });
context.Customers.Add(new Customer() { Name = "Sales", Email = "sales@zzzprojects.com", IsActive = false, LastLogin = DateTime.Now.AddYears(-3) });
context.Customers.Add(new Customer() { Name = "Sara", Email = "sara@zzzprojects.com", IsActive = true, LastLogin = DateTime.Now });
context.BulkSaveChanges();
public class EntityContext : DbContext
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
optionsBuilder.UseSqlServer(new SqlConnection(FiddleHelper.GetConnectionStringSqlServer()));
base.OnConfiguring(optionsBuilder);
public DbSet<Customer> Customers { get; set; }
public DbSet<BackupCustomer> BackupCustomers { get; set; }
public int CustomerID { get; set; }
public string Name { get; set; }
public string Email { get; set; }
public DateTime LastLogin { get; set; }
public Boolean IsActive { get; set; }
public class BackupCustomer
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int CustomerID { get; set; }
public string Name { get; set; }
public string Email { get; set; }