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 有效。
我有以下方法从 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 有效。