.net EF如何实例化DbContext属性?反射

.net EF如何实例化DbContext属性?反射,.net,entity-framework,.net,Entity Framework,EF如何实例化DbContext属性 我是说,你有自己的背景 public class ProductContext : DbContext{ public DbSet<Category> Categories { get; set; } public DbSet<Product> Products { get; set; } } 当您访问属性Categories时,该属性不为空,它已由DbContext创建 所以我的问题是,DbContext如何

EF如何实例化DbContext属性

我是说,你有自己的背景

public class ProductContext : DbContext{ 
    public DbSet<Category> Categories { get; set; } 
    public DbSet<Product> Products { get; set; } 
}
当您访问属性Categories时,该属性不为空,它已由DbContext创建

所以我的问题是,DbContext如何实例化这些类

我脑海中闪现的唯一方式是在DbContext构造函数的new()中使用反射

请注意,我不想知道用反射实例化属性的代码,我知道如何用反射实例化属性,所以我为什么要问这个问题?因为它通过反射操作看起来非常慢

因此,也许这是另一种更快的方式,我不知道。如果是的话,那更快的方式就是我想要的


或者它实际上是通过反射创建的,这也是“为什么不应该在一个DbContext中放置800多个表”的原因之一。

每个上下文类型只放置一次,但是反射(可能是什么?)代码是可用的。不知道源代码是可用的。谢谢,我来看看。
using (var context = new ProductContext()) {     
    //context.Categories.XXXX
}
//1º Get all properties that the type inherits from DbSet
//2º Instatiate with reflection/activator