none
Requête entity à l'aide d'un type de classe créé avec un string.

    Question

  • Bonjour,

    Dans le cadre d'un projet de synchronisation de donnée entre deux bases distinctes nous sommes parti sur un système générique où nous n'auront pas besoin de connaître le nom des tables à l'avance dans le code.

    Les noms de classes sont passés par une variable string que nous avons pu transformer par la suite en type grâce à la reflection.

    string ma_classe = "string_classe";
    Type ma_classe_type = Type.GetType(ma_classe);
    object mon_instance = Activator.CreateInstance(ma_classe_type);

    Jusque là pas de problème un objet du type string_classe est bien créé, si les données fourni dans le string sont fausses, nous avons une erreur. Donc string_classe correspond au nom de ma classe avec son namespace.

    Console.WriteLine(ma_classe_type.IsClass);

    La ligne précédente m'affiche bien true et lorsque je récupère le type de l'objet créé il est bien du type présent dans la string.

    Le problème vient pas la suite quand nous voulons instancier une simple List de "ma_classe_type" impossible de compiler car le type n'est pas reconnu.

    Le problème se pose quand nous voulons envoyer le type à une fonction entity qui nous retourne une list, mais il ne veut pas le prendre et soulève une erreur quant au type :

    Ci-dessous la fonction entity :

    public List<T> GetAll<T>() where T : class
    {
         return bdd.Set<T>().ToList();
    }

    La moindre idée, solution ou avis est le bienvenue.

    Merci




    • Modifié Arcanse mardi 4 août 2015 12:33
    mardi 4 août 2015 12:21

Toutes les réponses

  • Bonjour,

    Au fait, Les méthodes d'extension notamment les opérateurs de requête standard ajoutent des fonctionnalités de requête aux types System.Collections.IEnumerable et System.Collections.Generic.IEnumerable<T> existans...

    Je pense que le type que vous avez crée doit implémenter l'interface IEnumerable.

    Cordialement,

    Marwane OUAFIK.

    mardi 6 octobre 2015 13:43