数据库上下文 获取<T>返回动态表



我有一个dbContext类,例如,其中编写了两个DbSet参数,用于处理两个表。

public EntityCoreContext()
{
}
public EntityCoreContext(DbContextOptions<EntityCoreContext> options)
: base(options)
{
}
public virtual DbSet<Languages> Languages { get; set; }
public virtual DbSet<Users> Users { get; set; }

我知道要从上下文中获取数据,我必须编写:dbContext.Users.ToList ();dbContext.Languages.ToList();

我需要制作它,这样我就可以在不直接调用表名称的情况下获取数据。来自该系列:dbContext.Get<Users>().ToList();dbContext.Get<Languages>().ToList();

好吧,或者换一种方式。因此,表将被调用的方法是通用的。并支持所有会传给他的桌子。以下方法必须执行此操作:Insert、Update、Get、Delete。

EntityFramework中存在.Set<T>()方法,该方法根据传递的类型返回DbSet

所以你可以使用:

dbContext.Set<Users>().ToList();

我知道命名很奇怪,但这里的Set方法返回DbSet,它没有设置任何内容

不确定有什么好处,但类似于以下内容:

public IQueryable<T> GetEntity() where T : class
{
using (EntityCoreContext ctx = new EntityCoreContext())
{
return ctx.Set<T>();
}
}

最新更新