gpt4 book ai didi

entity-framework-5 - DbContext 如何初始化自动 DbSet 属性?

转载 作者:行者123 更新时间:2023-12-04 00:13:07 25 4
gpt4 key购买 nike

考虑以下类:

class MyContext : DbContext
{
public DbSet<Order> Orders { get; set; }
}

并实例化一个新对象:
var mycontext = new MyContext();

为什么 mycontext.Orders 不为空?什么时候初始化的?谁初始化了它?我真的很困惑,因为基类 (DbConetxt) 无法访问派生类属性,因此不可能在基对象中初始化自动属性。

最佳答案

从反射代码来看,当 DbContext(基类)被构建时,它调用 DbSetDiscoveryService(一个内部类)——它本质上使用反射来查找 DbContext 上的所有属性,然后初始化那些需要初始化的属性。

简而言之 - 在构造函数中使用反射。

关于entity-framework-5 - DbContext 如何初始化自动 DbSet<T> 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18210265/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com