EF获取DbContext中已注册的所有实体类型
时间:2021-07-01 10:21:17
帮助过:33人阅读
<summary>
/// 获取DbContext中已注册的实体类型
/// </summary>
/// <typeparam name="T">DbContext上下文类型</typeparam>
/// <param name="ass">实体所在程序集</param>
/// <returns></returns>
public IEnumerable<Type> GetEntityTypes<T>(Assembly ass)
where T : DbContext,
new()
{
var contextType =
typeof(T);
if (contextType !=
null)
{
var contextObj =
new T();
var objectContext =
((IObjectContextAdapter)contextObj).ObjectContext;
var mdw =
objectContext.MetadataWorkspace;
var items = mdw.GetItems<EntityType>
(DataSpace.OSpace);
return
items
.Select(e =>
e.FullName)
.Distinct()
.Select(ass.GetType);
}
return null;
}
EF获取DbContext中已注册的所有实体类型
标签:returns pre div span ctc bsp 获取 assembly var