2014-04-28 7 views
5

मैं ईएफ 6 के साथ एक एमवीसी 4 वेब ऐप पर काम कर रहा हूं। मैं ईएफ कोड पहला दृष्टिकोण (एक ब्रांड नए डेटाबेस पर) का उपयोग कर रहा हूं। तो मेरे पास मॉडल कक्षाएं हैं जिनका उपयोग मैं ईएफ में करता हूं।
ईएफ कोडफर्स्ट और आरडीएलसी रिपोर्ट

अब मुझे कुछ आरडीएलसी रिपोर्ट बनाने की आवश्यकता है। ऐसा करने के लिए मुझे डेटासेट बनाने की आवश्यकता है। तो मैं अपने मॉडल वर्गों का उपयोग कर डेटासेट कैसे बना सकता हूं? मॉडल वर्गों के बीच संबंध हैं जिन्हें मुझे डेटासेट में ले जाने की आवश्यकता है।

मेरा अंतिम लक्ष्य मेरे ef मॉडल का उपयोग करके मेरी रिपोर्ट में डेटा को डिज़ाइन और पॉप्युलेट करना है।

एडान्स

उत्तर

3

आम तौर पर ईएफ डेटासेट का समर्थन नहीं करता है। यदि आप ईएफ के साथ लोड किए गए डेटा के साथ डेटासेट्स को पॉप्युलेट करना चाहते हैं तो आपको इसके लिए अपनी कार्यक्षमता प्रदान करनी होगी। यहाँ मैं एक उदाहरण कैसे क्वेरी के साथ प्राप्त परिणाम से DataTable ऑब्जेक्ट को भरने के लिए मौजूद:

public static class IEnumerableExtensions 
{ 
    public static DataTable ToDataTable<TEntity>(this IEnumerable<TEntity> entities) 
    { 
     DataTable table = new DataTable(); 
     IEnumerable<PropertyInfo> properties = typeof(TEntity) 
      .GetProperties() 
      .Where(p => !p.PropertyType.IsClass || p.PropertyType == typeof(string)) 
     foreach(string propertyName in properties.Select(p => p.Name)) 
     { 
      table.Columns.Add(propertyName); 
     } 
     foreach(object item in entities) 
     { 
      List<object> propertiesValues = new List<object>(); 
      foreach (PropertyInfo property in properties) 
      { 
       propertiesValues.Add(property.GetValue(item)); 
      } 
      table.Rows.Add(propertiesValues.ToArray()); 
     } 
     return table; 
    } 
} 

आप के रूप में इस विस्तार विधि तो उपयोग कर सकते हैं इस प्रकार है:

DataTable table = context.People.ToDataTable(); 

आप तो तालिकाओं के बीच संबंधों को लागू करना चाहते हैं तर्क जो आपको करना है वह अधिक जटिल होगा। आपको डेटाटेबल ऑब्जेक्ट्स की चाइल्डरेलेशंस प्रॉपर्टी का उपयोग संबंधों से बांधने के लिए करना चाहिए। फिर आपके डेटाटेबल ऑब्जेक्ट्स जिन्हें आप डेटासेट में डाल सकते हैं।

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