如何获取属于模型一部分的实体类型列表,以便我可以测试模型是否确实适用于该实体类型?
var dcx = new MyDbContext();
var lst = new List<Type>();
//populate the list here somehow
//...
foreach (var t in lst) {
var set = dcx.Set(t); //I'm trying to avoid an exception here
try {
var test = set.FirstOrDefault();
} catch (Exception ex) {
Console.WriteLine("{0} has an error", t);
}
}
注:完全可以查询dcx.Set(t)
即使没有对应的DbSet
属性于MyDbContext
;因此,通过对属性的反射进行迭代是不够的MyDbContext
其返回类型的通用定义是DbSet<T>
甚至IDbSet<T>
.
也许是这样的?
var types = typeof(MyDbContext)
.GetProperties()
.Where(prop => prop.PropertyType.IsGenericType)
.Where(prop => prop.PropertyType.GetGenericTypeDefinition() == typeof(DbSet<>))
.Select(prop => prop.PropertyType.GenericTypeArguments.First())
.Distinct();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)