Skip to content

morozyan/LinqSpecs.Transitivity

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

LinqSpecs.Transitivity

tbd

Filtering with duplicated logic:

var vipClients = _context.Clients.Where(c => c.IsVip).ToList();
var vipClientAccounts = _context.Accounts.Where(a => a.Client.IsVip).ToList();

Filtering with LinqSpecs and TransitiveSpecification:

public static class ClientSpecs
{
    public static Specification<Client> IsVip() => new AdHocSpecification<Client>(c => c.IsVip);
}

var clientSpec = ClientSpecs.IsVip();
var accountSpec = new TransitiveSpecification<Account, Client>(a => a.Client, clientSpec);

var vipClients = _context.Clients.Where(clientSpec).ToList();
var vipClientAccounts = _context.Accounts.Where(accountSpec).ToList();

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages