You cannot do SELECT *
with LINQ. Generated query always have all column names to be selected. So, there will not be delay caused by reading table's definition in order to determine columns of that table. But there will be delay with reading all columns data from disk and sending data across the network. So, if you need only several columns from table, then it's better to select only those columns:
var query = from p in db.Person
select new { p.Id, p.Forename, p.Surname };
REMARK: With Linq to Object (in-memory query) you have opposite situation - you already have object in memory. Selecting set of properties is slower, because anonymous object should be created, and it's properties should be mapped. But this operation does not uses hard drive or network, so delay is insignificant.