2010-01-06 10 views
8

मैं एंटिटी फ्रेमवर्क 4, पीओसीओ और कोड-केवल का उपयोग करके एक प्रोजेक्ट सेट अप करने का प्रयास कर रहा हूं।नेविगेशन प्रॉपर्टी के साथ इंटरफ़ेस का उपयोग

क्या यह एक नेविगेशन संपत्ति के प्रकार के लिए इकाई फ्रेमवर्क में एक इंटरफ़ेस होने के लिए संभव है?

मेरे पास "कार्य" वर्ग है। किसी कार्य को किसी उपयोगकर्ता या समूह को असाइन किया जा सकता है, जिनमें से प्रत्येक को एक अलग वर्ग द्वारा दर्शाया जाता है और अलग-अलग तालिकाओं में संग्रहीत किया जाता है। कक्षाएं कुछ इस तरह दिखाई:

public class User : IAssignable 
{ 
    public String Name { get; set; } 
    public int ID { get; set; } 
    public String Email { get; set; } 
    public String Password { get; set; } 
} 

public class Group : IAssignable 
{ 
    public String Name { get; set; } 
    public int ID { get; set; } 
    public String Manager { get; set; } 
    public String Department { get; set; } 
} 

public class Task 
{ 
    public String Title { get; set; } 
    public DateTime DueDate { get; set; } 
    public String Details { get; set; } 
    public IAssignable AssignedTo { get; set; } 
} 

वहाँ एक रास्ता है करने के लिए इकाई ढांचे में एक नेविगेशन संपत्ति के रूप में AssignedTo संपत्ति हो सकता है? मुझे लगता है कि ईएफ के लिए कुछ प्रकार के भेदभावकर्ता होने चाहिए, यह जानने के लिए कि क्या उन्हें उपयोगकर्ता तालिका या समूह तालिका में देखना है, लेकिन मैं कोड-केवल या ईडीएमएक्स का उपयोग करके मानचित्रण को समझ सकता हूं।

+0

मुझे इसके समाधान में भी रूचि है। – Ciel

उत्तर

0

आप ईएफ 4 द्वारा समर्थित टेक्स्ट टेम्पलेट ट्रांसफॉर्मेशन टूलकिट (टी 4) का उपयोग कर अपने आप को बहुत से काम बचा सकते हैं। मैं इकाई परीक्षण के लिए एक शानदार आधार प्रदान करने के अलावा एक तरह से चारों ओर मैन्युअल रूप से मेरी Pocos और इंटरफेस बनाने की तलाश का एक अच्छा 12 घंटे बाद इस एक,

http://blogofrab.blogspot.com/2010/08/maintenance-free-mocking-for-unit.html

पाया, यह स्वत: उत्पन्न संबंधों के आधार पर नौवहन गुण आपके मॉडल में परिभाषित

1

आप नेविगेशन संपत्ति में इंटरफ़ेस का उपयोग कर सकते हैं, इस समाधान पर एक नज़र के रूप में यह प्रश्न के रूप में ही है: How to use interface properties with CodeFirst

1

मैं जानता हूँ कि यह एक पुराने सवाल है, लेकिन नहीं, वहाँ (इकाई की रूपरेखा का कोई सुविधा है यहां तक ​​कि नवीनतम संस्करण 6) जो आपको एक इंटरफ़ेस प्रकार के साथ नेविगेशन प्रॉपर्टी को मैप करने की अनुमति देता है।

हालांकि, आप कंक्रीट प्रकारों (और एक बाधा जो केवल एक सेट किया जा सकता है) के साथ कई नेविगेशन गुणों को मानचित्र बना सकते हैं और आपके इंटरफ़ेस प्रकार की एक अप्रयुक्त संपत्ति प्रदान करते हैं जो ठोस संपत्ति नेताओं को एक ही संपत्ति में जोड़ता है। दुर्भाग्यवश, इससे आपके प्रश्न अधिक जटिल हो सकते हैं क्योंकि कुछ प्रश्नों को जानने के लिए आवश्यक ठोस नेविगेशन गुणों को जानने की आवश्यकता होगी (और आप अपनी अप्रयुक्त इंटरफ़ेस संपत्ति के विरुद्ध क्वेरी नहीं कर सकते हैं)।

पॉलिमॉर्फिक नेविगेशन गुणों के लिए समर्थन के आसपास महत्वपूर्ण जटिलता है। विचार करें कि आपकी मूल AssignedTo संपत्ति से पूछताछ करने के लिए क्या होगा, यदि आपको लगता है कि यह AssignedToId int जैसे कॉलम पर मैप किया गया है। आपको User और Group इकाई सेट दोनों को जोड़ना या शामिल होना होगा और उम्मीद है कि दिए गए AssignedToId उनमें से केवल एक में दिखाई देता है। यह Table-Per-Concrete (TPC) टाइप मैपिंग द्वारा उपयोग किया जाने वाला दृष्टिकोण है, लेकिन यह केवल वर्ग विरासत (इंटरफेस नहीं) और भाग लेने वाले प्रकारों में अलग-अलग आईडी बनाने के लिए सावधानीपूर्वक योजना के साथ काम करता है।