2012-08-23 6 views
7

Entity Frameworkモデルで、派生クラスの読み込みプロパティを熱心にしようとしています。私は仕事に)(含まれていることを取得する方法がわからないOfType()の後にInclude()を使用する方法?

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

は、私が最初にプロパティを含める前にOfType()とのセットをフィルタリングする必要がtheplaceall over)は(含める読みます私の場合PersonはDbSetであるため、OfType()はIQueryableを返し、IQueryableはInclude()メソッドを定義しません。

+0

このリンクヘルプを希望します。http://social.msdn.microsoft.com/forums/en/US/adodotnetentityframework/thread/2130796d-a2fe-4137-af18-d56480748384 – Boomer

答えて

15

場所この:

using System.Data.Entity; 
あなたの使用してリストに

、その後あなたがDbExtensionsクラスからInclude拡張メソッドのファミリを使用することができます:彼らは、最初の引数としてのIQueryableを受け入れる

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); 

また、強く型付けされた型もあり、それはより良いです。次にInclude(String)です。

+2

Ah!ありがとう、私はおそらく拡張メソッドだと思った。私は本当にVSが名前空間を発見できるようにしたいと思っています。あるいは、人々がサンプルに使っているものを含んでいることを祈っています:) –

+0

@XavierPoinas:あなたに完全に同意します。 – Dennis

+0

@XavierPoinas私はResharperにこの(他の理由の中で)理由がありました。 Resharperは、インテリセンスでのVisual Studioの提案におけるこの欠けているギャップを埋めるための拡張方法を提案します。完全にあなたに同意する! –

関連する問題