2012-06-29 17 views
27

Ben varlık framework kullanıyorum ve bu örnekte olduğu gibi bir yöntem bulamadığını: BuradaÖğe çerçevesindeki lambda ifadesiyle "Dahil Et" yöntemini bulamıyorum?

using(ArticleExtractorEntities db=new ArticleExtractorEntities()) 
{ 
    Preference pref= db.Preferences.Include( 

i parametresi (dize yolu) ile dahil sadece fonksiyonunu bulmak ve herhangi bir diğer aşırı bulmuyorum Peki lambda ifadesiyle birlikte nasıl kullanabilirim?

+1

Sen EF 4 kullanılarak çözülmesi gereken ** 1 ** veya üstü. VS 2010 ile birlikte gelen gemilerin EF 4 olduğunu unutmayın. – AakashM

cevap

76

System.Linq içinde değil.

using System.Data.Entity 
+0

Bunu ekledim ama işe yaramadı –

+1

@ahmadhori varlıklar linux var, veya linq sql? –

+0

Kabul edilmiş bir cevap olarak işaretlenmelidir. –

1

Gün içinde bir çok as shown in this blog post uygulayabileceği ekleyin:

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; 
    } 
} 
6

Güncelleme. o .Include() ile linq sorgusu uzatmak nasıl arayanlar için

Artık öyle: netcoreapp1.0 ile

using System.Data.Entity; 

öyle:

using Microsoft.EntityFrameworkCore; 
İlgili konular