2012-05-03 20 views
16

मेरे पास RavenDB में स्टोर करने के लिए एक दस्तावेज़ मॉडल है लेकिन मैं एक गणना की गई संपत्ति को संग्रहीत नहीं करना चाहता हूं। मैं इस संपत्ति को अनदेखा करने के लिए RavenDB कैसे कहूं?एक संपत्ति को अनदेखा करने के लिए RavenDB को बताएं

नीचे दिए गए उदाहरण में मैं Duration स्टोर नहीं करना चाहता हूं।

public class Build 
{ 
    public string Id { get; set; } 
    public string Name { get; set; } 
    public DateTime StartedAt { get; set; } 
    public DateTime FinishedAt { get; set; } 

    public TimeSpan Duration { get { return StartedAt.Subtract(FinishedAt); }} 
} 

उत्तर

24

बस [JsonIgnore] इस तरह के साथ Duration संपत्ति को सजाने:

public class Build 
{ 
    public string Id { get; set; } 
    public string Name { get; set; } 
    public DateTime StartedAt { get; set; } 
    public DateTime FinishedAt { get; set; } 

    [Raven.Imports.Newtonsoft.Json.JsonIgnore] 
    public TimeSpan Duration { get { return StartedAt.Subtract(FinishedAt); }} 
} 

यहाँ अधिक देखें: http://ravendb.net/docs/client-api/advanced/custom-serialization

+1

साइड नोट: इस वर्ग के -another- परियोजना में है, तो (जैसे AwesomeNamespace.Core।), तो इस अन्य परियोजना को या तो न्यूजॉन्सफ्ट.जेसन या रावेनडीबी क्लाइंट पैकेज को न्यूजेट करने की आवश्यकता है। असल में, यह विशेषता Newtonsoft.Json लाइब्रेरी से है। यह भविष्य में बदल सकता है, लेकिन मेरे समय इस टिप्पणी को लिखने के समय .. यह स्कोर है। –

+9

"रावेनडीबी के संस्करण 2 के साथ आपको न्यूटनसॉफ्ट.जेसन नेमस्पेस के बजाय रावेन.इम्पोर्ट्स न्यूवॉन्सॉफ्ट.जेसन नेमस्पेस से विशेषताओं का उपयोग करने की आवश्यकता है। न्यूटॉन्सॉफ्ट.जेसन नेमस्पेस को अनदेखा किया जाएगा।" - उपर्युक्त लिंक पर टिप्पणियों से लिया गया। – ChadT

+1

रावेनडीबी 3: 'Raven.Imports.Newtonsoft.Json' नामस्थान की बजाय '[Newtonsoft.Json.JsonIgnore]' का उपयोग करें। लगता है, उन्होंने इसे बदल दिया है क्योंकि @ चाडटी ने वी 2 पर टिप्पणी की है। –

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