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

时间:2018-01-08 16:21:40

标签: .net entity-framework

EF如何实例化DbContext属性?

我的意思是,你有像

这样的背景
public class ProductContext : DbContext{ 
    public DbSet<Category> Categories { get; set; } 
    public DbSet<Product> Products { get; set; } 
}

Greate,比你用它

using (var context = new ProductContext()) {     
    //context.Categories.XXXX
}

当您访问属性类别时,它不是NULL,它已经由 DbContext 创建了一些如何。

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

在DbContext构造函数 new()

中突然出现的唯一方法是反射
//1º Get all properties that the type inherits from DbSet
//2º Instatiate with reflection/activator

请,我不想知道用反射来实例化属性的代码,我知道如何用反射来实现,所以为什么我要问?因为使用反射进行它看起来非常慢。

所以也许这是以另一种我不知道的更快的方式完成的。如果是,更快的方式就是我正在寻找的。

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

0 个答案:

没有答案