using Microsoft.EntityFrameworkCore;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Microsoft.Data.SqlClient;
public static void Main()
using (var context = new EntityContext())
context.Database.EnsureCreated();
using (var context = new EntityContext())
context.Customers.Add(new Customer() { Code = $"Info", Name = "Support Team", Email = "info@zzzprojects.com" });
context.Customers.Add(new Customer() { Code = $"Sales", Name = "Sales Team", Email = "sales@zzzprojects.com" });
context.BulkSaveChanges();
FiddleHelper.WriteTable("1 - Customers", context.Customers.ToList());
using (var context = new EntityContext())
var listCustomers = new List<Customer>() { new Customer() { CustomerID = 1 }, new Customer() { CustomerID = 3 }};
var databaseCustomers = context.Customers.WhereBulkContains(listCustomers).ToList();
FiddleHelper.WriteTable("2 - Database Customers", databaseCustomers);
using (var context = new EntityContext())
var listCustomers = new List<Customer>() { new Customer() { Name = "Sales Team", Email = "sales@zzzprojects.com" }, new Customer() { Name = "Random", Email = "Random" }};
var sourceCustomers = context.Customers
.WhereBulkContainsFilterList(listCustomers, x => new { x.Email, x.Name }).ToList();
FiddleHelper.WriteTable("3 - Source Customers", sourceCustomers);
public class EntityContext : DbContext
public DbSet<Customer> Customers { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
optionsBuilder.UseSqlServer(new SqlConnection(FiddleHelper.GetConnectionStringSqlServer()));
base.OnConfiguring(optionsBuilder);
public int CustomerID { get; set; }
public string Code { get; set; }
public string Name { get; set; }
public string Email { get; set; }