2011-03-19 17 views
5

इकाई की रूपरेखा एक का उपयोग अक्सरइकाई की रूपरेखा ऑटोजनरेटेड तालिका नाम

var orders = from o in context.Orders.Include("Customer") 
      where o.OrderDate.HasValue && o.OrderDate.Value.Year == 1997 
      orderby o.Freight 
      select o; 

क्या वास्तव में मेरे पेट मंथन "Customer" स्ट्रिंग तर्क है बनाता है इस तरह के प्रश्नों लिखता है। मुझे विश्वास है कि ईएफ टेबल नामों को स्थिरांक के रूप में उत्पन्न नहीं करता है। क्या कोई स्ट्रिंग का उपयोग करने से बेहतर दृष्टिकोण जानता है? Include फ़ेच विकल्प के लिए?

उत्तर

6

EF 4.1 दृढ़ता से IQueryable, ObjectQuery और DbQuery के लिए प्रयोग करने योग्य शामिल के संस्करण टाइप किया गया है। एक बार जब आप EntityFramework.dll (एफई 4.1) के संदर्भ में जोड़ने आप System.Data.Entity का उपयोग कर जोड़ सकते हैं और लैम्ब्डा के साथ भाव उत्सुक लोड हो रहा है उपयोग कर सकते हैं

// get Orders with related Customers 
var orders = from o in context.Orders.Include(o => o.Customer) ... 

संपादित करें:

आप एफई उपयोग करने के लिए नहीं करना चाहते हैं 4.1 this article देखें। मैंने पहले से ही अपने प्रोजेक्ट में उपयोग किया है और मैं इसके साथ खुश हूं।

+0

ठंडा लेकिन मुझे 4.0 –

+0

4.1 के लिए इसकी आवश्यकता है बस पुस्तकालय है। आप अभी भी 4.0 का उपयोग कर सकते हैं और सुविधा प्राप्त करने के लिए लाइब्रेरी को लिंक कर सकते हैं। –

1

IMO GetType आप जहां सभी परिभाषाओं संग्रहीत किया जाता है .edmx फ़ाइल के अलावा अन्य मदद कर सकता है,

context.Orders.Include(CustomerEntity.GetType.Name or full name) 
+1

नहीं, यह गलत है, क्योंकि नेविगेशन संपत्ति के नाम बदला जा सकता है। –

+0

इसमें कोई समस्या नहीं होगी, क्योंकि एडीएमएक्स मैपिंग इसका ख्याल रखती है। – paragy

+1

नहीं, अगर नेविगेशन प्रॉपर्टी का प्रकार "ग्राहक" है, तो मैं ईडीएमएक्स में नेविगेशन प्रॉपर्टी में नाम बदल सकता हूं, "फर्स्ट कस्टमर" हालांकि यह सब कुछ कहां कर रहा है। शामिल ("ग्राहक") का उपयोग नहीं किया जाएगा, समस्या का नाम बदल दिया जाएगा अपवर्तक के साथ। –

1

के बारे में

Include(context.Customers.EntitySet.Name) 

कैसे?

+1

Unfortuantelly नहीं क्योंकि ग्राहक मॉडल में परिभाषित इकाई सेट है लेकिन इकाई में परिभाषित संपत्ति का नाम शामिल करें 'शामिल करें'। नाम इकाई सेट से भिन्न हो सकता है। –

1

आप एक टेक्स्ट टेम्पलेट बना सकते हैं जो आपको ईएफ के डिफ़ॉल्ट कोड के अतिरिक्त कोड उत्पन्न करने की अनुमति देगा। आप राइट क्लिक करके और "कोड जनरेशन आइटम जोड़ें" पर क्लिक करके ऐसा कर सकते हैं।

इस टेक्स्ट टेम्पलेट में, आप अपने ग्राहक को "ग्राहकप्रॉपर्टीज" में आवश्यकतानुसार बना सकते हैं और प्रत्येक नेविगेशन प्रॉपर्टी के लिए निरंतर नाम बना सकते हैं।

http://msdn.microsoft.com/en-us/data/gg558520

+0

दिलचस्प लगता है। मैंने अभी तक .tt के साथ नहीं खेला है, क्या आप कृपया क्या सम्मिलित करना चाहते हैं? –

+1

कृपया मेरे संपादन की जांच करें ... –

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