CodeFirst实体类中,为什么都把ICollection<x>定义成virtual?
来源:互联网 发布:edr软件 编辑:程序博客网 时间:2024/06/05 11:15
主要是用于延迟加载,提高性能用的
只有定义成virtual后才可以延迟加载。
延迟加载,默认情况下,延迟加载被支持,如果你希望禁用它,必须显式声明,最好的位置是在 DbContext 的构造器中。
public MyDomainContext() { this.Configuration.LazyLoadingEnabled = false; }
这样延迟加载就如你所愿了。当查询一个实体集的时候,相关的子实体也一并加载。当 EF 访问实体的子实体的时候是如何工作的呢?你的集合是 POCO 的集合,所以,在访问的时候没有事件发生,EF 通过从你定义的实体派生一个动态的对象,然后覆盖你的子实体集合访问属性来实现。这就是为什么需要标记你的子实体集合属性为 virtual 的原因。
public class Order { public int OrderID { get; set; } public string OrderTitle { get; set; } public string CustomerName { get; set; } public DateTime TransactionDate { get; set; } public virtual List<OrderDetail> OrderDetails { get; set; } public virtual List<Business> Businesses { get; set; } }
- CodeFirst实体类中,为什么都把ICollection<x>定义成virtual?
- 为什么需要将继承层次中类的析构函数定义成virtual的?
- 把一个类的析构函数定义成virtual
- C++ :函数中无需改变传入参数的值时,定义时把 “Item & x ” 都改成 \"const Item & x\"
- 为什么把block定义成copy类型
- 使用EF CodeFirst根据实体类生成数据库
- struts1.x中不用FormBean,如何快速把页面表单的数据放入实体bean中
- 为什么要把父类的析构函数定义成虚函数?
- 为什么要把父类的析构函数定义成虚函数
- 为什么要把父类的析构函数定义成虚函数?
- 为什么要把父类的析构函数定义成虚函数?
- 这个程序中为什么出错???为什么不能把nl,nr定义为全局变量,求大神指教
- 为什么jdk中把String类设计成final?
- 为什么jdk中把String类设计成final?
- 为什么jdk中把String类设计成final?
- 为什么 jdk 中把 String 类设计成 final
- 为什么jdk中把String类设计成final?
- 为什么 jdk 中把 String 类设计成 final
- poj 2739 Sum of Consecutive Prime Numbers(筛选素数 预处理)
- 移植Lua到ARM平台
- MySQL启动不了--------------------------------------输入密码(度)一声消失
- Morphia开发简介
- 基于Win32控制台应用程序的ADO连接SQL server数据库
- CodeFirst实体类中,为什么都把ICollection<x>定义成virtual?
- Eclipse快捷键 10个最有用的快捷键
- iOS学习笔记——Core Data
- android&eclipse开发环境搭建
- android:layout_width="wrap_content"让android:layout_weight="1"无效
- 构造平衡二叉树
- Android NDK学习 <一> 简介
- Android NDK学习 <二> Android.mk的制作
- 解决/usr/bin/ld: cannot find -lxxx