0
根据Why do navigation properties have to be public for a proxy to be created?的导航属性可以保护内部虚拟,并不需要公共虚拟和实体框架仍然会提供代理。 我已编程的导航属性这样的:导航属性可以保护内部虚拟吗?
protected internal virtual ICollection<MyEntityType> MyNavigationCollection { get; set; }
在映射我明明有:
.WithMany(t => t.MyNavigationCollection)
这似乎与我所引用的文章线。我遇到的问题是,当我查询拥有对象时,Entity Framework不再为MyNavigationCollection分配一个代理集合的实例,因为我已将MyNavigationCollection的可见性更改为受保护的内部虚拟。
我为了让Entity Framework使用具有受访问保护内部虚拟机制的集合的代理对象而错过了什么?
确定吗?受保护的内部手段既受保护也受内部保护,那么为什么要通过内部扩大可视性使其对Entity Framework不那么可见? –
内部项目仅对包含它们的程序集可见,EF代码在程序集外部,因此代理将无法访问它,代理对受保护项目具有完全可见性,因为它继承了您的类,从而使受保护的项成员在代理中可见。 –
您引用的SO中的注释也解释了这一点。内部根本无法工作。保护很好。 –