I have no hands on experience it EF and hence dont know the relevence of the question.
Suppose I have tables named Student (StudentId, Name, Username, Address, DOB, DeptId, NavigationProp1Id.... ) and in Department table (Deptd, DeptName., NavigationProPid). So if a table structure follows like this, when I use 'contex.Studnets ' I can get all prpoerties along with it including navigation properties and if table 2 has other navigation properties it can also be loaded. Am I correct?
If so whether it cause any performance issue? Can I load only selected properties from Entity like only UserName, Address from Student entity?
No navigation properties are not loaded immediately. They are loaded either explicitly if you use Include
method or lazily when you access them for the first time (that is also reason why you see them in debugger = access through debugger caused lazy loading).
You can load only selected properties - it is called projection. The limitation is that you cannot load Student entity with subset of properties. You need either new class or anonymous type:
var query = context.Students.Select(x => new
{
x.UserName,
x.Address
});