Get all model types

我怕爱的太早我们不能终老 提交于 2019-12-02 10:17:52

Maybe something like this?

var types = typeof(MyDbContext)
    .GetProperties()
    .Where(prop => prop.PropertyType.IsGenericType)
    .Where(prop => prop.PropertyType.GetGenericTypeDefinition() == typeof(DbSet<>))
    .Select(prop => prop.PropertyType.GenericTypeArguments.First())
    .Distinct();
Zev Spitz

Thanks to the link in @GertArnold 's comment, I am now using the following:

var dcx = new MyDbContext();
var objContext = ((IObjectContextAdapter)dcx).ObjectContext;
var types = db.ObjectContext.MetadataWorkspace.GetItems<EntityType>(DataSpace.OSpace).Select(x => Type.GetType(x.FullName));
foreach (var t in lst) {
...
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!