在我使用 Entity Framework 的项目中,我有一堆看起来几乎一模一样的函数,所以我想创建一个它们调用的通用方法:
private IHttpActionResult GetData<TEntity>(DbSet<TEntity> data)
我遇到的问题是data
参数说TEntity
必须是引用类型才能工作,但实体的类型来自自动生成的代码,该代码没有任何我可以通过where
子句约束的基类方法定义。
我基本上想通过获取上下文并像这样传递表来调用它:
using (var context = new DataModel.MyEntities()) {
GetData(context.Lab_SubSpace_Contact);
}
要扩展@Igor 的答案,您不必传递DbSet<TEntity>
,您也可以通过类型参数动态获取:
private IHttpActionResult GetData<TEntity>() where TEntity : class
{
using (var context = new YourContext())
{
var dbSet = context.Set<TEntity>();
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句