有没有办法获取一个实体正在跟踪的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中获得此结果?
否。EFCore还没有延迟加载。如果有,那么从它生成的代理最终将引用加载它的DbContext。到目前为止,还没有这样的参考。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句