siva nagarjuna

siva nagarjuna

  • NA
  • 26
  • 17k

multiple queries in Entity Framework ?

Aug 30 2016 1:16 AM
 
 
 
 
 
 
 Combine Expressions instead of using multiple queries in Entity Framework ?


 
 
 
 
 
 
i have following generic queryable (which may already have selections applied):

IQueryable<TEntity> queryable = DBSet<TEntity>.AsQueryable();

Then there is the Provider class that looks like this:

public class Provider<TEntity>
{
public Expression<Func<TEntity, bool>> Condition { get; set; }

[...]
}

The Condition could be defined per instance in the following fashion:

Condition = entity => entity.Id == 3;

Now I want to select all Provider instances which have a Condition that is met at least by one entity of the DBSet:

List<Provider> providers = [...];
var matchingProviders = providers.Where(provider => queryable.Any(provider.Condition))

The problem with this: I'm starting a query for each Provider instance in the list. I'd rather use a single query to achieve the same result.
This topic is especially important because of questionable performance. How can I achieve the same results with a single
query and improve performance using Linq statements or Expression Trees?

Answers (2)