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())
for (int i = 0; i < 3; i++)
context.Models.Add(new Model { Code = (i + 10).ToString() });
using (var context = new EntityContext())
var listExample = new List<string> { "10" };
var allModels = context.Models.ToList();
FiddleHelper.WriteTable("Models before delete", allModels);
var modelsWhichShouldBeDeleted = context.Models.AsNoTracking().WhereBulkContains(listExample, x => x.Code).ToList();
var deleted = context.Models.AsNoTracking().WhereBulkContains(listExample, x => x.Code).DeleteFromQuery();
var modelsAfterDelete = context.Models.AsNoTracking().ToList();
FiddleHelper.WriteTable("Models which should be deleted", modelsWhichShouldBeDeleted);
FiddleHelper.WriteTable("Count of deleted models", deleted.ToString());
FiddleHelper.WriteTable("Models which are now in DB after Delete", modelsAfterDelete);
public class EntityContext : DbContext
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
optionsBuilder.UseSqlServer(new SqlConnection(FiddleHelper.GetConnectionStringSqlServer()));
base.OnConfiguring(optionsBuilder);
public DbSet<Model> Models { get; set; }
public int ID { get; set; }
public string Code { get; set; }