說我有以下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