NET Core 6.0:是否可以创建通用方法以从 EF Core 获取 List<T>?

NET Core 6.0 : Is possible to create generic methods to get a List<T> from EF Core?

我有以下方法从 5 个不同的视图中获取来自 EF Core 6.0 的所述视图的列表:

    public List<Vw_Customers> GetCustomers(THEDBContext dbContext)
    {
        return dbContext.Vw_Customers.ToList();
    }

    public List<VW_Cars> GetCars(THEDBContext dbContext)
    {
        return dbContext.VW_Cars.ToList();
    }

等等...

它有效,但我必须使用“n”种方法从我的数据库中获取数据。

有没有办法让我通过视图的 class 获得特定的列表,比如

    public List<dynamic> GetData(THEDBContext dbContext, Class myViewClass)
    {
        return dbContext.myViewClass.ToList();
    }

?

搜索 Whosebug 我发现可以使用 dbContext.Set<MyClass>,但它不适用于最新的 EF Core 版本。

你可以这样做

public  class MyClass<T> where T : class
{
    public List<T> GetData(THEDBContext dbContext)
    {
       return dbContext.Set<T>().ToList();
    }

 }

这是从 dbcontext 获取 return 数据的通用方法,我假设您使用 'dynamic' 词来描述它将是不固定的。否则,如果您想使用 dynamic type 它根本不是通用的,我不建议您在这种情况下使用它。

您应该查看一些文档并且 tutorials in order to understand how generic classes and methods 有效。