基于实体类型创建通用DbSet

时间:2013-12-09 04:11:54

标签: c# entity-framework generics code-first dbset

在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

1 个答案:

答案 0 :(得分:0)

不容易。如果您确实需要获取通用Set<>,则可以使用反射调用DbSet的正确泛型重载。除此之外,为了调用泛型方法,您需要在编译时知道正确的泛型类型参数 。除了反射之外,任何时候你最终在运行时使用Type个对象都会失去使用泛型类型的能力。