I would think that all database queries are executed on the server side (where the database is!), And the results are transmitted. However, in Linq, you have something called Delayed Execution (lazily loaded), so your information is not actually retrieved until you try to access it, for example. calling ToList () or accessing a property (linked table).
You have the option of using LoadWith to load if you need it.
So, in terms of performance, if you really want to make 1 trip to the database for your query (which has related tables), I would recommend using the LoadWith options. However, this does depend on the specific situation.
James source share