看来本人理论果然不行啊,这个东西折腾死我了。即便是到现在,还是云里雾里。。。。
个人认为virtual的特点就是可以被override而不是必需的,到目前为止我用它的地方也比较少。
class="code_img_closed" src="/Upload/Images/2013091811/0015B68B3C38AA5B.gif" alt="" />logs_code_hide('3c791831-b082-42b7-8de9-a2a475b3b43c',event)" src="/Upload/Images/2013091811/2B1B950FA3DF188F.gif" alt="" />
1 public class KnowledgeType : BaseEntity 2 { 3 [Key] 4 public Guid Id { set; get; } 5 6 /// <summary> 7 /// 类名 8 /// </summary> 9 [StringLength(50, ErrorMessage = StringLength)] 10 public string TypeName { set; get; } 11 12 /// <summary> 13 /// 延迟加载 14 /// 如果去掉virtual,那么就不是延迟加载了 15 /// </summary> 16 public virtual List<Knowledge> Knowledges { set; get; } 17 }View Code
延迟加载,优点就不说了,缺点大家都知道 性能影响。
任何事情都有优缺两面,到底是用 贪婪加载、延迟加载 还是 显示加载(个人认为显示加载和延迟加载没太大区别),这个要看具体情况和个人喜好了。
关于虚方法的应用领域我真想不出来,因为理论差所以之前做东西就是跟着别人用。如有补充请指出,谢谢!