Ali*_*eza 3 dbcontext entity-framework-5 dbset
考虑以下课程:
class MyContext : DbContext
{
public DbSet<Order> Orders { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
并实例化一个新对象:
var mycontext = new MyContext();
Run Code Online (Sandbox Code Playgroud)
为什么mycontext.Orders不为null?什么时候初始化?谁初始化了它?我真的很困惑,因为基类(DbConetxt)无法访问派生类属性,因此不可能在基础对象中初始化自动属性.
通过查看反射的代码,当构造DbContext(基类)时,它会调用DbSetDiscoveryService(内部clasS) - 它实际上使用反射来查找DbContext上的所有属性,然后初始化那些需要初始化的属性.
所以简而言之 - 在构造函数中使用反射.
| 归档时间: |
|
| 查看次数: |
1424 次 |
| 最近记录: |