我有一个用实体框架映射的数据库,
我需要实现一个通用方法来获取基于我传递的参数的项目列表:
getGenericList("product"); // returns the list of products
getGenericList("customer"); // returns the list of customers
我需要动态获取dbSet
. 我的方法是这样实现的:
public static List<object> getGenericList(string entityType)
{
List<object> myDynamicList = new List<object>();
using (cduContext db = new cduContext())
{
DbSet dbSet = db.getDBSet(entityType);
var myDynamicList = dbSet.Select(p => p).ToList();
}
return new List<object>();
}
mydbSets
首先由 EF 代码自动生成:
public DbSet<Product> Products { get; set; }
public DbSet<Custommer> Custommers { get; set; }
我的getDBSet(entityType)
方法是在上下文中实现的,如下所示:
public DbSet<T> getDBSet<T>(string entityName) where T : class
{
switch (entityName)
{
case "product":
return Products;
case "custommer":
return Custommers;
然后我得到了这个错误:
无法将类型“System.Data.Entity.DbSet”隐式转换为“System.Data.Entity.DbSet”
请有任何想法!?
NB , 的方法Set()
不行dbContext
;类型应该明确给出......