I think the main problem with LINQ is that it fetches table data based on .NET classes so often will not limit the data to only those columns you are interested in, plus with the Lazy loading option it will potentially get all the data from the downstream tables as well.