看来本人理论果然不行啊,这个东西折腾死我了。即便是到现在,还是云里雾里。。。。

个人认为virtual的特点就是可以override而不是必需的,到目前为止我用它的地方也比较少。

 

 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

 

延迟加载,优点就不说了,缺点大家都知道 性能影响。

任何事情都有优缺两面,到底是用 贪婪加载、延迟加载 还是 显示加载(个人认为显示加载和延迟加载没太大区别),这个要看具体情况和个人喜好了。

关于虚方法的应用领域我真想不出来,因为理论差所以之前做东西就是跟着别人用。如有补充请指出,谢谢!