在DbContext类

时间:2016-08-01 06:53:26

标签: entity-framework

这是我的DbContext类实现:

    public partial class DXMvcApp : DbContext
{
    ...
    public virtual DbSet<TabMastCc> TabMastCcs { get; set; }
    public virtual DbSet<TabMastCo> TabMastCoes { get; set; }
    public virtual DbSet<TabMastCoCc> TabMastCoCcs { get; set; }
    public virtual DbSet<TabMastH> TabMastHs { get; set; }
    public virtual DbSet<TabMastHsCc> TabMastHsCcs { get; set; }
    public virtual DbSet<TabMastHsCo> TabMastHsCoes { get; set; }
    public virtual DbSet<TabMastHsCoCc> TabMastHsCoCcs { get; set; }
    ...
}

我有一个字符串变量,表示DbSet的名称。我想根据字符串变量动态查询DbSet。我该怎么办?

1 个答案:

答案 0 :(得分:0)

如果您知道类型,可以获得DbSet(例如,使用context.Set(typeof(TabMastCc)))。

如果您知道的是数据集的名称而不是类型,那么您可以创建Dictionary将名称映射到类型,以便您使用context.Set方法

示例代码:

var dbSets = new Dictionary<string, Type>
{
    { "TabMastCcs", typeof(TabMastCc) }
};

var dbSetName = "TabMastCcs";
var context = new YourContext();
var tabMastCcType = dbSets[dbSetName];
var tabMastCcDbSet = context.Set(tabMastCcType);