IDbSet und Freilegen Include-Methode über Erweiterung die Methode

Ich bin mit dem Code-First-Ansatz mit EF und ich wollte IDbSet statt DbSet damit ich tun konnte, Unit-Testen mit mocks. Mein problem ist, ich benutze die Include () - Methode für eager loading, wo notwendig, aber Include() nicht ausgesetzt über IDbSet. Ich sah ein Beispiel-code unter Verwendung einer extension-Methode zu setzen Include (), aber es scheint nicht für mich arbeiten; das objectQuery-Objekt in diesem Beispiel immer null ist. Bitte lassen Sie mich wissen, wie dieses Problem zu beheben.

public static class IQueryableExtension
{
    public static IQueryable<T> Include<T>(this IQueryable<T> source, string path)
        where T : class
    {
        ObjectQuery<T> objectQuery = source as ObjectQuery<T>;
        if (objectQuery != null)
        {
            return objectQuery.Include(path);
        }
        return source;
    }

    public static IQueryable<T> Include<T, TProperty>(this IQueryable<T> source, 
        System.Linq.Expressions.Expression<Func<T, TProperty>> path)
        where T : class
    {
        ObjectQuery<T> objectQuery = source as ObjectQuery<T>;
        if (objectQuery != null)
        {
            return source.Include(path);
        }
        return source;
    }
}
InformationsquelleAutor enamrik | 2011-02-09
Schreibe einen Kommentar