2012-06-29 8 views
27

मैं इकाई की रूपरेखा का उपयोग कर रहा है और मुझे लगता है कि इस उदाहरण में की तरह विधि नहीं हो सकते:मुझे इकाई ढांचे में लैम्ब्डा अभिव्यक्ति के साथ "शामिल करें" विधि नहीं मिल रही है?

using(ArticleExtractorEntities db=new ArticleExtractorEntities()) 
{ 
    Preference pref= db.Preferences.Include( 
यहाँ

मैं केवल समारोह को खोजने के पैरामीटर (स्ट्रिंग पथ) के साथ शामिल हैं और मैं किसी अन्य अधिभार नहीं मिल रहा है तो मैं लैम्ब्डा अभिव्यक्ति के साथ शामिल कैसे उपयोग कर सकते हैं?

+1

आप एफई 4 का उपयोग करने की आवश्यकता है ** 1 ** या बाद में। ध्यान दें कि वीएस 2010 के साथ कौन से जहाज ईएफ 4 हैं, जो * यह नहीं है। – AakashM

उत्तर

76

यह सिस्टम में नहीं है। लिंक। जोड़े

using System.Data.Entity 
+0

मैंने इसे जोड़ा लेकिन यह –

+1

@ahmadhori काम नहीं कर रहा है आप इकाइयों के लिए linq में हैं, या linq एसक्यूएल? –

+0

इसे एक स्वीकृत उत्तर के रूप में चिह्नित किया जाना चाहिए। –

1

आप इसे as shown in this blog post को लागू कर सकते हैं: निम्न लेख में

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

अद्यतन। देख कैसे यह .Include() के साथ अपने LINQ क्वेरी का विस्तार उन लोगों के लिए

अब यह है:

using System.Data.Entity; 

netcoreapp1.0 के साथ यह है:

using Microsoft.EntityFrameworkCore; 
संबंधित मुद्दे