在Entity Framework中动态创建DbSet <T>?

skj*_*ini 23 c# linq-to-sql entity-framework-4 ef-code-first dbset

在LINQ to SQL中,我可以使用动态创建存储库DataContext.GetTable<T>.是否有类似的方法在Entity Framework 4中执行此操作,而不是声明特定的属性DbContext?例如:

public MyDbContext: DbContext
{
    public DbSet<MySet> MySets {get; set;}
}
Run Code Online (Sandbox Code Playgroud)

我想知道如何MySets动态创建/获取动态参考,因为我可以使用LINQ to SQL,如下所示:

var mySet = MyDbContext.GetTable<MySet>();
Run Code Online (Sandbox Code Playgroud)

Lad*_*nka 38

DbContext 有这个方法:

  var set = context.Set<MyEntity>();
Run Code Online (Sandbox Code Playgroud)


Jan*_* K. 18

使用:

DbSet<MyEntity> set = context.Set<MyEntity>();
Run Code Online (Sandbox Code Playgroud)

或者,如果您不能使用通用方法:

DbSet set = context.Set(
    typeof( MyEntity )
);
Run Code Online (Sandbox Code Playgroud)

不要担心第二次加载和复制POCO.集合由Context内部缓存.