从实体框架核心中的实体获取DbContext

凯瑟琳

有没有办法获取一个实体正在跟踪的DbContext实例(如果有)?

在实体框架中发现了以下针对EF6从实体获取DbContext的建议/解决方案

public static DbContext GetDbContextFromEntity(object entity)
{
    var object_context = GetObjectContextFromEntity( entity );

    if ( object_context == null )
        return null;

    return new DbContext( object_context, dbContextOwnsObjectContext: false );
}

private static ObjectContext GetObjectContextFromEntity(object entity)
{
    var field = entity.GetType().GetField("_entityWrapper");

    if ( field == null )
        return null;

    var wrapper  = field.GetValue(entity);
    var property = wrapper.GetType().GetProperty("Context");
    var context  = (ObjectContext)property.GetValue(wrapper, null);

    return context;
}

有没有办法在EF Core中获得此结果?

里卡多·佩雷斯(Ricardo Peres)

否。EFCore还没有延迟加载。如果有,那么从它生成的代理最终将引用加载它的DbContext。到目前为止,还没有这样的参考。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章