小编Dob*_*leA的帖子

如何根据表名在DbContext中选择正确的DbSet

假设我有一个带有以下DbSet的DbContext

class Amimals : DbContext
{
    public DbSet<Dog> Dogs { get; set; }
    public DbSet<Cat> Cats { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

在每个EntityTypeConfiguration内部,我为每个DbSet定义表

class DogConfig : EntityTypeConfiguration
{
    public  DogConfig()
    {
        this.ToTable("DOG_TABLE");
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,如果我有表名和DbContext,我怎样才能获取并使用正确的DbSet?

void foo()
{
    string tableName = this.GetTableName();
    using(Animals context = new Animals())
    {
        /* Made up solution */
        DbSet animalContext = context.Where(c => c.TableName == tableName);
        ...
        /* Do something with DbSet */
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

c# linq reflection entity-framework

9
推荐指数
1
解决办法
1万
查看次数

标签 统计

c# ×1

entity-framework ×1

linq ×1

reflection ×1