使用表名更改DbSet

时间:2018-02-06 11:39:02

标签: c# database entity-framework dbcontext dbset

我想知道如何使用表名更改DbContext上的DbSet(而不是像示例中那样使用修复DbSet)。我已经尝试this solution,但没有结果。

        var type = Assembly.GetExecutingAssembly()
            .GetTypes()
            .FirstOrDefault(t => t.Name == tablename);

        DbSet dsContext = DbContext.Set(type);

        var data = DbContext.dsContext 
            .Where(r => r.C_NUMERICID == idLinea)
            .Where(r => r.C_TIMESTAMP > startDate)
            .OrderBy(r => r.C_TIMESTAMP)
            .ToList();
  

DbContext不包含' dsContext'

的定义

1 个答案:

答案 0 :(得分:0)

我查错了。这是可行的解决方案。

type = Assembly.GetExecutingAssembly()
   .GetTypes()
   .FirstOrDefault(t => t.Name == kepwareTableName);
IQueryable data = DbContext.Set(type)
   .Where($"C_NUMERICID == {idLinea}")
   .Where("C_TIMESTAMP > @0", startDate)
   .OrderBy("C_TIMESTAMP");
return data ;