我已将现有项目更改为首先使用EF5和代码。它使用的是依赖于旧ObjectContext的存储库类。为了使存储库实现保持不变,我在DBContext上创建了一个属性,它将返回一个ObjectContext:
public ObjectContext ObjectContext()
{
return (this as IObjectContextAdapter).ObjectContext;
}
问题是,在此之后,ObjectContext上的实体不可用,因此以下代码失败:
string GetSetName<T>() {
var entitySetProperty =
_context.GetType().GetProperties()
.Single(p => p.PropertyType.IsGenericType && typeof(IQueryable<>)
.MakeGenericType(typeof(T)).IsAssignableFrom(p.PropertyType));
return entitySetProperty.Name;
}
原始DBContext在将其转换为ObjectContext之前具有所有可用实体,但由于ObjectContext类没有我的实体的属性,我该如何访问它们?