J'ai une base de données mis en correspondance avec Entity Framework,Entity Framework dynamique DbSet pour toutes les entités
Je dois mettre en œuvre une méthode générique pour obtenir aa liste des éléments en fonction d'un paramètre que je passe:
getGenericList("product"); // returns the list of products
getGenericList("customer"); // returns the list of customers
Je dois dynamiquement obtenir le dbSet
. Ma méthode est mise en œuvre comme ceci:
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>();
}
mon dbSets
sont le code généré automatiquement par EF première:
public DbSet<Product> Products { get; set; }
public DbSet<Custommer> Custommers { get; set; }
ma méthode getDBSet(entityType)
est mis en œuvre dans le contexte, comme celui-ci:
public DbSet<T> getDBSet<T>(string entityName) where T : class
{
switch (entityName)
{
case "product":
return Products;
case "custommer":
return Custommers;
J'ai ensuite eu cette erreur:
Cannot implicitly convert type 'System.Data.Entity.DbSet' to 'System.Data.Entity.DbSet'
Une idée s'il vous plaît!?
N.B. , la méthode Set()
du dbContext
n'est pas OK; le type doit être donné explicitement ...
Vous pouvez corriger l'orthographe de « custommer » -> « client » dans votre code actuel. – MEMark