Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Abonnements

Entity Framework Include avec Func v2

J'ai défini un Include qui prend un Func en paramètre.

Cool. Mais le problème c'est que je suis limité aux relations avec un seul niveau. En effet, je ne sais pas traiter Include("Products.Order_Details")?

J'ai donc modifier mon code comme ceci :

public static class ObjectQueryExtension

{

    public static ObjectQuery<T> Include<T>(this ObjectQuery<T> mainQuery, Expression<Func<T, object>> subSelector)

    {

        return mainQuery.Include(FuncToString(subSelector.Body));

    }

    private static string FuncToString(Expression selector)

    {

        switch (selector.NodeType)

        {

            case ExpressionType.MemberAccess:

                return ((selector as MemberExpression).Member as Reflection.PropertyInfo).Name;

            case ExpressionType.Call:

                var method = selector as MethodCallExpression;

                return FuncToString(method.Arguments[0]) + "." + FuncToString(method.Arguments[1]);

            case ExpressionType.Quote:

                return FuncToString(((selector as UnaryExpression).Operand as LambdaExpression).Body);

        }

        throw new InvalidOperationException();

    }

    public static K Include<T, K>(this EntityCollection<T> mainQuery, Expression<Func<T, object>> subSelector)

        where T : EntityObject, IEntityWithRelationships

        where K : class

    {

        return null;

    }

    public static K Include<T, K>(this T mainQuery, Expression<Func<T, object>> subSelector)

        where T : EntityObject

        where K : class

    {

        return null;

    }

}

et je peux maintenant faire ça :

context.Categories.Include(ca => ca.Products.Include<Products, Order_Details>(p => p.Order_Details).Include<Order_Details, Orders>(od => od.Orders))

Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :

Publié vendredi 6 juin 2008 23:54 par Matthieu MEZIL

Classé sous : , ,

Commentaires

# re: Entity Framework Include avec Func v2 @ samedi 7 juin 2008 12:40

Tu pourrais faire un switch sur le NodeType du selector, ça éviterait tous les doubles cast.

Jb Evain

# re: Entity Framework Include avec Func v2 @ samedi 7 juin 2008 18:15

Merci beaucoup pour la remarque Jean-Baptiste. Surtout, si tu as d'autres remarques comme ça n'hésite surtout pas.

J'ai modifié mon code.

Matthieu MEZIL

Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- Merci par Blog de Jérémy Jeanson le 10-01-2019, 20:47

- Office 365: Script PowerShell pour auditer l’usage des Office Groups de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 11:02

- Office 365: Script PowerShell pour auditer l’usage de Microsoft Teams de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 10:39

- Office 365: Script PowerShell pour auditer l’usage de OneDrive for Business de votre tenant par Blog Technique de Romelard Fabrice le 04-25-2019, 15:13

- Office 365: Script PowerShell pour auditer l’usage de SharePoint Online de votre tenant par Blog Technique de Romelard Fabrice le 02-27-2019, 13:39

- Office 365: Script PowerShell pour auditer l’usage d’Exchange Online de votre tenant par Blog Technique de Romelard Fabrice le 02-25-2019, 15:07

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Stream Portal par Blog Technique de Romelard Fabrice le 02-21-2019, 17:56

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Video Portal par Blog Technique de Romelard Fabrice le 02-18-2019, 18:56

- Office 365: Script PowerShell pour extraire les Audit Log basés sur des filtres fournis par Blog Technique de Romelard Fabrice le 01-28-2019, 16:13

- SharePoint Online: Script PowerShell pour désactiver l’Option IRM des sites SPO non autorisés par Blog Technique de Romelard Fabrice le 12-14-2018, 13:01