2012-08-23 27 views
7

मैं एक इकाई फ्रेमवर्क मॉडल में व्युत्पन्न वर्ग के लोड गुणों को उत्सुक करने की कोशिश कर रहा हूं।OfType() के बाद Include() का उपयोग कैसे करें?

मैंने पढ़ा all overtheplace कि मैं पहली बार साथ गुण शामिल करने से पहले OfType() के साथ सेट को फ़िल्टर करने के लिए है शामिल करें():

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

मैं कैसे शामिल करें() काम करने के लिए प्राप्त करने के लिए पता नहीं है हालांकि मेरे मामले में, व्यक्ति एक डीबीसेट है, ऑफ टाइप() एक 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 विस्तार तरीकों परिवार का उपयोग करने में सक्षम हो जाएगा:

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

वे पहले तर्क के रूप में IQueryable स्वीकार , और दृढ़ता से टाइप किए गए हैं, जो भी बेहतर है, फिर Include(String)

+2

आह! धन्यवाद, मैंने सोचा कि यह शायद एक विस्तार विधि थी। मैं वास्तव में चाहता हूं कि वीएस ने नेमस्पेस को खोजने योग्य बनाया और/या लोगों ने अपने नमूने में उपयोग शामिल किया :) –

+0

@XavierPoinas: पूरी तरह से आपसे सहमत हैं, यह मुझे पहली बार भ्रमित कर देता है। – Dennis

+0

@XavierPoinas मुझे इस (अन्य कारणों) कारणों के लिए Resharper में परिवर्तित कर दिया गया है। Resharper इंटेलिजेंस में विजुअल स्टूडियो सुझावों में इस लापता अंतर को भरने के लिए विस्तार विधियों का सुझाव देगा। आपसे पूर्णतः सहमत हूँ! –

संबंधित मुद्दे