का उपयोग कर कोई सेटटर वाला रीड-ओनली प्रॉपर्टी मैप करना मेरे पास ऐसा डोमेन क्लास है जो इस तरह दिखता है। मैं NH12ern51 से को LastUpdate
के वर्तमान मूल्य को सहेजने/अपडेट करने के दौरान सहेजता हूं ताकि मैं इसे प्रश्नों में उपयोग कर सकूं, लेकिन डेटाबेस से Foo
पुनर्प्राप्त करते समय इसे अनदेखा कर सकूं और जब मैं वास्तव में इसे एक्सेस करता हूं तो ऑब्जेक्ट स्वयं मान को फिर से समझने दें।Fluent NHibernate
public class Foo {
public DateTime LastUpdate {
get {
/* Complex logic to determine last update by inspecting History */
return value;
}
}
public IEnumerable<History> History { get; set; }
/* etc. */
}
Foo
के लिए मेरे मानचित्रण इस तरह दिखता है:
public class FooMap : ClassMap<Foo> {
Map(x => x.LastUpdate)
.ReadOnly();
HasMany(x => x.History);
// etc...
}
मैंने सोचा था कि ReadOnly()
क्या मैं इसे पूरा करना चाहता था, लेकिन जब मैं एक SessionFactory मैं निम्नलिखित अपवाद बनाने का प्रयास करें:
Error: FluentNHibernate.Cfg.FluentConfigurationException: An invalid or incomplete configuration was used while creating a SessionFactory. Check PotentialReasons collection, and InnerException for more detail.
---> NHibernate.PropertyNotFoundException: Could not find a setter for property 'LastUpdate' in class 'Foo'.
संपत्ति में कोई सेटटर नहीं है क्योंकि इसे सेट नहीं किया जाना चाहिए, केवल से पढ़ें। ReadOnly()
क्या करने के लिए सही बात है? यदि नहीं, तो क्या?
(NHibernate v3.0b1, धाराप्रवाह NHibernate v1.1)
ReadOnly() ; जेनरेट किए गए मैपिंग एक्सएमएल में केवल सेट्स = "झूठी" और LastUpdate प्रॉपर्टी के अद्यतन = "झूठे" गुणों को स्ट्रीम करता है। – tolism7