c# - 将 Entity Framework 类型传递给泛型方法

标签 c# entity-framework

在我使用 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/

相关文章:

C# - 如何对字符串或字符进行编码?

c# - 带有 TextBlock 的 BulletDecorator 不显示 Unicode 字符

C# 用常数时间覆盖文本文件的前几行

c# - EF6 codefirst 中唯一的多列

c# - 来自 wcf 数据服务的 Entity Framework 6 数据上下文

c# - Entity Framework 4.0 - 版本控制

c# - Azure 移动服务 - UpdateAsync 不会更新所有字段

c# - 根据 x64/x86 更改 C# DllImport 目标代码

c# - Entity Framework : how to replace a significant part of a lambda query in c# by using an ExpressionVisitor

c# - Entity Framework 中的派生类型