说我有以下DbSets我如何选择的DbContext正确DbSet基于表名
class Amimals : DbContext
{
public DbSet<Dog> Dogs { get; set; }
public DbSet<Cat> Cats { get; set; }
}
里面我定义的表中的每个DbSet像
class DogConfig : EntityTypeConfiguration
{
public DogConfig()
{
this.ToTable("DOG_TABLE");
...
}
}
每个EntityTypeConfiguration的的DbContext
现在,如果我有表名和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 */
...
}
}
很好,这是返回EntityTypeConfiguration类。我需要使用DbSet。 有没有办法在上下文中获取DbSet的实例? – DobleA 2014-10-10 22:28:48
是的,你可以。此代码工作正常并返回DbSet的实例。在我的示例中,'talbeName'必须与模型类名称匹配。请注意'tableName'等于“Cat”,所以结果将是DbSet。好吧,'tableName'听起来有点不清楚,它应该是'C#模型类名称,它在DbContext的泛型DbSet中与此类型一起使用并且代表一些表名'。请分享您的不工作代码。 –
2014-10-11 06:46:45
那么,如果我说'context.Cats.Select(c => c)'我尝试使用'AsQueryable()',但仍然不会这样做,我无法像调用Linq方法那样调用DbSet。 – DobleA 2014-10-13 14:21:40