创建 DbSet在实体框架中动态?
在 LINQ to SQL 中,我可以使用 DataContext.GetTable
动态创建存储库。除了在特定 DbContext
上声明属性之外,在 Entity Framework 4 中是否有类似的方法可以执行此操作?例如:
public MyDbContext: DbContext
{
public DbSet<MySet> MySets {get; set;}
}
我想知道如何动态创建/获取对 MySets
的引用,就像使用 LINQ to SQL 一样,如下所示:
var mySet = MyDbContext.GetTable<MySet>();
In LINQ to SQL, I can create a repository dynamically using DataContext.GetTable<T>
. Is there a similar way to do this in Entity Framework 4 other than declaring the properties on the specific DbContext
? For example:
public MyDbContext: DbContext
{
public DbSet<MySet> MySets {get; set;}
}
I would like to know how can I create/get a reference to MySets
dynamically as I can with LINQ to SQL as in:
var mySet = MyDbContext.GetTable<MySet>();
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
DbContext
有这样的方法:DbContext
has method for this:使用:
或者,如果您不能使用通用方法:
不要担心二次加载和复制 POCO。集合由上下文在内部缓存。
Use:
Or, if you can't use the generic method:
Don't worry about second-loading and duplicating a POCO. Sets are cached internally by the Context.
这是我的方法:
您将此函数称为:
这将返回您的整个集合。我用它来为基本表执行缓存功能,这些表不会经常更改其内容。
This is my aproach:
And you call this function as:
This returns your entire collection. I used this to perform a cache functionality for basic tables which don't change its content very often.