Skip to content

Superfast way to join a SQL table with an object list using EntityFrameworkCore

Notifications You must be signed in to change notification settings

kerinshelton/EntityFrameworkCore.SqlServer.Extensions.Contains

Repository files navigation

EntityFrameworkCore.SqlServer.Extensions.Contains

Installing via NuGet

Install-Package EntityFrameworkCore.SqlServer.Extensions.Contains

Example

Create a search model with 2 params

public class CarSearch
{
   public int Id { get; set; }
   public string Model { get; set; }
}

var carSearchObjects = new List<CarSearch>();

Your join would resemble something like this, which cant be done as the join would be between an in memory object list and a sql server table:

from c in context.Cars
join o in carSearchObjects 
     on new { Id = c.Id, Model = c.Model } equals new { Id = o.Id, Model = o.Model }
select m;

Usage

using EntityFrameworkCore.SqlServer.Extensions.Contains;

using (var context = new DbContext())
{
    var carSearch = context.Cars.Take(800).Select(x => new { x.Model, x.Id }).ToList();

    var filtered = context.Cars.Contains(carSearch, "Cars", false, c => c.Model,  c => c.Id );

    Console.WriteLine(filtered.Count());
}

About

Superfast way to join a SQL table with an object list using EntityFrameworkCore

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages