nHibernate उत्पन्न कर सकते हैं संपत्ति के लिए मूल्य?

वोट
2

ईद कॉलम एक जनरेटर निर्दिष्ट कर सकते हैं। उत्तम।

हालांकि, मैं एक स्थिति है जिसमें मैं अगर यह रिक्त है एक संपत्ति स्तंभ के लिए एक उत्पन्न मूल्य निर्दिष्ट करने की जरूरत है। एक चालान तालिका जहां एक किराए प्राथमिक कुंजी स्तंभ और एक चालान नंबर कॉलम वहाँ की तर्ज पर कुछ सोचो।

CREATE TABLE dbo.Invoice (InvoiceId INT NOT NULL PRIMARY KEY IDENTITY(1,1), InvoiceNumber INT NOT NULL, InvoiceDate DATETIME NOT NULL, remaining columns...)

यह एक डिफ़ॉल्ट मान नहीं है। चालान संख्या कुछ नियम यह पीढ़ी है चारों ओर हो सकता है। मैं एक सी # वर्ग है कि वास्तविक पीढ़ी संभालती है मैं सिर्फ चालान वर्ग पर संपत्ति के मूल्य को भरने के लिए एक रास्ता खोजने की जरूरत है,।

आदर्श रूप में मैं जैसे मैं मानचित्रण में एक आईडी के लिए क्या एक संपत्ति के लिए एक जनरेटर निर्दिष्ट करने के लिए सक्षम होगा। दुर्भाग्य से, यह है कि मैं क्या निर्धारित कर सकते हैं से संभव प्रतीत नहीं होता। मैं आशा करती हूं मैं गलत हूँ।

मैं दूसरे, गैर nHibernate विकल्प मैं एक ट्रिगर, पीढ़ी प्रदाता में का उपयोग कर डालने की तरह काम कर सकता है है। हालांकि, मैं यह एक कोडन विकल्प के लिए एक विन्यास विकल्प के बजाय रखना चाहते हैं।

क्या किसी को पता है, तो एक तरह के एक क्षमता मौजूद है करता है?

12/03/2009 को 17:11
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


3 जवाब

वोट
2

NHibernate को उम्मीद है कि आप इन सभी नियमों आपके डोमेन की कक्षाओं में परिभाषित करेगा -, कंस्ट्रक्टर्स में उदाहरण के लिए।

12/03/2009 को 17:15
का स्रोत उपयोगकर्ता

वोट
0

देर से उत्तर के लिए क्षमा करें, लेकिन मैं हाल ही में आप के रूप में ही समस्या हुई थी। मैं NHibernate स्रोत में थोड़ा backtraced और जैसे मैं एक समाधान पाया लगता है।

आपको GUID पीढ़ी के लिए NHibernate.Id नाम स्थान का उपयोग कर सकते हैं। दे अपने ग्राहक Guid उत्पन्न या देशी डीबी दे यह कर - वहाँ 2 व्यवहार्य विकल्प है।

इन कक्षाओं आप की जरूरत है:

  • NHibernate.Id.NativeGuidGenerator // डीबी पीढ़ी
  • NHibernate.Id.GuidGenerator // ग्राहक पीढ़ी

NHibernate.Id.NativeGuidGenerator श्रेणी का उपयोग करते हुए कुछ इस तरह से पूरा किया जा सकता है:

public Guid GetNewSessionId()
{
    NHibernate.Id.NativeGuidGenerator guidGen = new NHibernate.Id.NativeGuidGenerator();
    return (Guid)(guidGen.Generate((NHibernate.Engine.ISessionImplementor)anOpenSession, null));
}

इसके साथ गुड लक :)

07/04/2009 को 15:53
का स्रोत उपयोगकर्ता

वोट
0

तुम्हारा मतलब है तुम एक डिफ़ॉल्ट-मूल्य प्रदान करना चाहते हैं?

मैं कहूँगा कि यह कुछ है कि आप DB स्तर पर निर्दिष्ट करना चाहिए होना चाहिए ...

क्या तुम सच में चाहते हैं कि NHibernate इस का ख्याल रखता है, मुझे लगता है कि आप एक इंटरसेप्टर कि कि संपत्ति का मूल्य निर्धारित करेंगे जब यह फ्लश-समय में शून्य है बनाना चाहिए।

या, यदि आप डिफ़ॉल्ट मान अपनी इकाई में, संपत्ति निर्माता में एक डिफ़ॉल्ट-मूल्य देकर निर्दिष्ट कर सकते हैं।

12/03/2009 को 17:13
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more