从实体对象获取ObjectContext引用的最快方法是什么?

Joh*_*ter 5 c# entity-framework-4 entityobject objectcontext

我正在为我的EntityFramework对象创建扩展,如如何:自定义生成的数据对象中所述,但在某些扩展中,我需要获取实例的ObjectContext来查找模型中的其他一些值.我已经找到了提示24 - 如何从实体获取ObjectContext,但这是几年前编写的,这在类似的SO问题中被引用,但我真的希望现在有更好的答案.

当然,这必须是经常需要的东西,以便使用官方方法支持从实体本身检索实体的对象上下文.

提前感谢您提供有关此实施的最新信息.

Lad*_*nka 0

不,没有任何这样的方法。所描述的解决方法看起来像是唯一的选择,因为实体派生EntityObject自定义为:

[Serializable, DataContract(IsReference=true)]
public abstract class EntityObject : StructuralObject, IEntityWithKey,  
    IEntityWithChangeTracker, IEntityWithRelationships
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

据我所知,只会IEntityWithRelationships.RelationshipManager导致ObjectContext. 这在 EF 4 中没有改变。

此外,从实体访问上下文并不常见。我可以想象,这对于在 EF 之上实现 Active Record 模式会很有帮助,但在这种情况下,您可能还可以控制在实体的静态方法内创建上下文,因此您应该能够将其设置为实体。在其他情况下,我会说这是你应该尽可能避免的事情。