2011-08-06 17 views
29

में संग्रह नाम निर्दिष्ट करना तो मान लें कि मेरे पास 3 ऑब्जेक्ट्स फलों, ऐप्पल और ऑरेंज हैं। फल ऐप्पल और ऑरेंज के लिए सार आधार वर्ग है। जब मैं सत्र का उपयोग करता हूं। स्टोयर (myApple), यह इसे एप्पल संग्रह में डालता है। Oranges संग्रह में myOrange स्टोर। समझ में आता है।RavenDB

क्या मैं रावेन को बता सकता हूं कि मुझे एक फल संग्रह चाहिए जो सेब या संतरे को पकड़ सके? Mongodb यह अनुमति देता है क्योंकि यह मुझे स्पष्ट रूप से संग्रह नाम निर्दिष्ट करने देता है। RavenDB संग्रह प्रलेखन कहते हैं:

उपयोग की अपेक्षित पद्धति, जो संग्रह समूह के समान संरचना के साथ दस्तावेजों का उपयोग किया जाता है, हालांकि यह है कि जरूरी नहीं है। डेटाबेस स्टैंडपॉइंट से, संग्रह केवल दस्तावेज़ों का एक समूह है जो समान इकाई नाम साझा करता है।

मैं इसे की तरह कुछ होने की उम्मीद थी: session.Store < फल> (myApple), या session.Store ("फल", myApple)

कोई भी विचार? धन्यवाद।

+0

ये आपकी समस्या के समान प्रतीत होते हैं। मैं कोशिश करता हूं लेकिन मैं इस समय असमर्थ हूं। http://groups.google.com/group/ravendb/browse_thread/thread/eb86c2ffd29ed5e/11644a7eaddaf123?lnk=gst&q=Inheritance#11644a7eaddaf123 http://mikehadlow.blogspot.com/2010/10/ravendb-playing-with- विरासत-और.html –

उत्तर

39

सूआ, आप का उपयोग कर ऐसा कर सकते हैं:

session.Store(apple); 
session.Advanced.GetMetadataFor(apple)[Constants.RavenEntityName] = "Fruits"; 

लंबा रास्ता ऐसा करने के लिए है कि। एक बहुत बेहतर तरीके से इस तर्क को विश्व स्तर पर, यह कुछ इस तरह दिखता जोड़ने के लिए होगा:

store.Conventions.FindTypeTagName = 
    type => type.IsSubclassOf(typeof(Fruit)) ? 
     DocumentConvention.DefaultTypeTagName(typeof(Fruit)) : 
     DocumentConvention.DefaultTypeTagName(type); 

कि सब कुछ के लिए इस संभाल लेंगे।

+0

हाँ, मेरे लिए काम किया, धन्यवाद! – awl

+0

आपकी प्रतिक्रिया के लिए धन्यवाद। –

+0

.NET कोर के लिए आपको 'type.GetTypeInfo() का उपयोग करने की आवश्यकता है। IsSubclassOf (typeof (Fruit))' ('System.Reflection' से) या' टाइपऑफ (फलों) IsAssignableFrom (type) '([link] (http : //msdn.microsoft.com/en-us/library/system.type.isassignablefrom.aspx))। इस जवाब को बेहतर ढंग से समझने के लिए 'IsAssignableFrom' ([link] (https://stackoverflow.com/a/2742288/968003)) –

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