के निर्माण के लिए सबसे अच्छा तरीका मैं एनएचबर्ननेट (और ओआरएमएस) के लिए नया हूं और विभिन्न विकल्पों के असंख्य लोगों के साथ पकड़ने की कोशिश कर रहा हूं। संदर्भ के लिए, मैं अलग-अलग व्यावसायिक वस्तुओं के साथ फ्लुएंट एनएचबेर्नेट का उपयोग कर रहा हूं जो बदले में डेटा एक्सेस के लिए डीटीओ का उपयोग करता है। मेरे एप्लिकेशन आर्किटेक्चर को विंडोज़ और वेब दोनों "फ्रंट एंड्स" का समर्थन करना होगा।एनएचबेर्नेट डीटीओ के
मेरी क्वांड्री सामान्य दृष्टिकोण में से एक है क्योंकि ऐसा कई विकल्प प्रतीत होते हैं। मेरा डीटीओ नीचे नमूना की तरह कुछ दिखता है। प्रत्येक डीटीओ में एक आईएसशन का संदर्भ होता है जो उन्हें बीओ से पास किया जाता है। वे अपने स्वयं के भार के लिए जिम्मेदार हैं और बचाने:
सभी कीpublic class EmployeeDTO...
// Data Properties to be persisted to the database
public virtual int Id { get; private set; }
public virtual string FirstName { get; set; }
public virtual string LastName { get; set; }
public virtual ISession Session { get; set; }
// Save logic
public virtual void Save()
{
var transaction = Session.BeginTransaction();
Session.SaveOrUpdate(this);
transaction.Commit();
}
// Load logic
public virtual void Load(int id)...
पहले: इस लेने के लिए सही दृष्टिकोण है - चाहिए डीटीओ बचाने के लिए और खुद को लोड करने की क्षमता है?
दूसरी बात: सहेजें/लोड कोड निहित है, तो आप जीवन या किसी वस्तु के लिए एक ही ISession का उपयोग करना चाहिए, या वे ISessionFactory करने के लिए एक रेफरी होना चाहिए और एक नया सत्र हर बार डाटाबेस संपर्क खोल सकते हैं जहां की परवाह किए बिना आवश्यक है?
// Open a new session every time I interact with the repository
var session = FluentSupport.SessionFactory.OpenSession();
var transaction = Session.BeginTransaction();
Session.SaveOrUpdate(this);
transaction.Commit();
session.Close();
// Close the session when I'm done
बेशक
वहाँ हमेशा विकल्प 3, ऊपर :)
एक वस्तु जानता है कि कैसे सहेजें करने के लिए अपने आप में डीएओ कहा जाता है, इस डीटीओ –