Если вы пытаетесь получить DbSet<TEntity>
от TEntity
, используйте:
var dbSet = dbContext.Set<TEntity>();
Если вы хотите вызвать этот метод на основе имени строки и вашего словаря, вы получитеиспользовать отражение.
EF Core, похоже, не имеет неуниверсального DbSet
, поэтому вам придется использовать один из неуниверсальных интерфейсов, таких как IQueryable
, и я бы включил Func
, который вы можете вызвать, чтобы получить IQueryable
вместо просто типа, если вы настаиваете на маршруте отображения словаря.Например:
var myDictionary = new Dictionary<string, Func<DbContext, IQueryable>>()
{
{ "TblStudents", ( DbContext context ) => context.Set<TblStudent>() }
};
var dbSet = myDictionary[ "TblStudents" ].Invoke( dbContext );