public class Employee
{
public int EmpID { get; set; }
public string EmpName{ get; set; }
public string Address { get; set; }
public virtual ICollection<Dept> dept{ get; set; }
}
public class Dept
{
public int DeptID{ get; set; }
public string DeptName{ get; set; }
public string Email { get; set; }
public virtual Division div { get; set; }
}
--------------------------------------------------------------------------------------
The
{
public int EmpID { get; set; }
public string EmpName{ get; set; }
public string Address { get; set; }
public virtual ICollection<Dept> dept{ get; set; }
}
public class Dept
{
public int DeptID{ get; set; }
public string DeptName{ get; set; }
public string Email { get; set; }
public virtual Division div { get; set; }
}
--------------------------------------------------------------------------------------
The
virtual
keyword has an effect when used on properties in EF Code First.- Lazy Loading: Any
virtual
ICollections will be lazy-loaded unless you specifically mark them otherwise. - More efficient change tracking. If you meet all the following requirements then your change tracking can use a more efficient method by hooking your virtual properties. From the link:
To get change tracking proxies, the basic rule is that your class must be public, non-abstract or non-sealed. Your class must also implement public virtual getters/setters for all properties that are persisted. Finally, you must declare collection based relationship navigation properties as ICollection<T> only. They cannot be a concrete implementation or another interface that derives from ICollection<T> (a difference from the Deferred Loading proxy)
No comments:
Post a Comment