Entity Framework - Table structure, navigating many descendants, etc
I also work on an e-commerce platform that has tons of data in it.  What I've found is that if you have more than a very basic query, write the query yourself.  EF speeds up saving records and very basic selects, but as soon as you start doing something a bit complicated, EF will spit out thousands of lines of SQL for something you could have done yourself in 100.  You are better off just trying to create the SQL for it and use Dapper or just create an object that you can map directly back to from the query.  Use context.Database.SqlQuery(sql, parameters).ToList() and you'll be able to get exactly what you need.  Though, naturally, it is going to be way more work on your part since you have to do all the joins manually and type that out, but if you need it to perform, then I would really recommend just typing it out.  I've had calls go from 60 seconds down to &lt; 4 by just doing it myself instead of relying on EF.