在我使用 Entity Framework 的项目中,我有一堆看起来几乎一模一样的函数,所以我想创建一个它们调用的通用方法:
private IHttpActionResult GetData<TEntity>(DbSet<TEntity> data)
我遇到的问题是 data
参数表示 TEntity
必须是引用类型才能工作,但实体的类型来自 auto-生成的代码没有任何我可以通过方法定义上的 where
子句约束的基类。
我基本上想通过获取上下文并像这样传递表格来调用它:
using (var context = new DataModel.MyEntities()) {
GetData(context.Lab_SubSpace_Contact);
}
最佳答案
展开@Igor's answer ,您不必通过 DbSet<TEntity>
,你也可以通过类型参数动态获取:
private IHttpActionResult GetData<TEntity>() where TEntity : class
{
using (var context = new YourContext())
{
var dbSet = context.Set<TEntity>();
}
}
关于c# - 将 Entity Framework 类型传递给泛型方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49309859/