2012-08-23 13 views
7

Ich versuche eifrig Eigenschaften einer abgeleiteten Klasse in einem Entity Framework-Modell zu laden.Wie Verwenden von Include() nach OfType()?

Ich las all overtheplace, die ich zuerst das Set mit OfType Filter() vor, einschließlich Eigenschaften mit include():

var persons = Context.Persons 
        .OfType<Employee>() 
        .Include("Compensation") 

Ich weiß nicht, wie zu bekommen, die() zu arbeiten Obwohl in meinem Fall Personen ein DbSet ist, gibt OfType() ein IQueryable zurück, und IQueryable definiert keine Include() -Methode.

+0

Hoffe diese Linkhilfe http://social.msdn.microsoft.com/forums/en-US/adodotterentityframework/thread/2130796d-a2fe-4137-af18-d56480748384 – Boomer

Antwort

15

Dieses:

using System.Data.Entity; 

in Liste Ihr mit der, und danach werden Sie in der Lage sein Include Erweiterungsmethoden Familie von DbExtensions Klasse zu verwenden:

public static IQueryable<T> Include<T, TProperty>(this IQueryable<T> source, Expression<Func<T, TProperty>> path) where T : class; 
    public static IQueryable<T> Include<T>(this IQueryable<T> source, string path) where T : class; 
    public static IQueryable Include(this IQueryable source, string path); 

Sie akzeptieren IQueryable als erstes Argument , und es gibt auch stark typisierte, was besser ist, dann Include(String).

+2

Ah! Danke, ich dachte, es wäre wahrscheinlich eine Erweiterungsmethode. Ich wünschte wirklich, dass VS den Namespace entdeckbar machte und/oder dass Leute die Usings in ihre Samples einfügten :) –

+0

@XavierPoinas: stimme völlig mit dir überein, das verwirrte mich auch beim ersten Mal. – Dennis

+0

@XavierPoinas Ich wurde aus diesem Grund zu Resharper konvertiert. Resharper schlägt Erweiterungsmethoden vor, um diese fehlende Lücke in Visual Studio-Vorschlägen in Intellisense zu füllen. Ich stimme dir vollkommen zu! –

Verwandte Themen