在EF代码中首先使用以下代码安静,我可以根据每个实体类型创建非泛型DbSets
:
foreach (var entry in _dbContext.ChangeTracker.Entries<BaseEntity>())
{
BaseEntity entity = entry.Entity;
Type type = entity.GetType();
var set = _dbContext.Set(type);
}
有没有办法将它们创建为Generic DbSet
?
答案 0 :(得分:0)
不容易。如果您确实需要获取通用Set<>
,则可以使用反射调用DbSet
的正确泛型重载。除此之外,为了调用泛型方法,您需要在编译时知道正确的泛型类型参数 。除了反射之外,任何时候你最终在运行时使用Type
个对象都会失去使用泛型类型的能力。