में एक घटक के रूप में एक अपरिवर्तनीय संरचना मैपिंग मैं एनएचबीर्नेट को मेरी कंपनी की ओआरएम जरूरतों का समाधान करने के लिए परीक्षण कर रहा हूं। ऐसा करने के लिए, मैंने स्कूल के आधार पर एक छोटा परीक्षण मॉडल तैयार किया है, जो एनएचबीर्नेट को संभालने के लिए कुछ उपयोगी एज-केस प्रदान करता है।NHibernate
मैं जानने IUserType
इंटरफ़ेस का उपयोग किए बिना एक इकाई के एक घटक के रूप में एक कस्टम संरचना मैप करने के लिए कैसे समस्या आ रही है। मुझे इस बात पर जोर देना चाहिए कि यह एक महत्वपूर्ण आवश्यकता है कि डोमेन कक्षाएं हमारे एनएचबीरनेट कोड से अलग असेंबली में हों, और डोमेन असेंबली में एनएचबेर्नेट का संदर्भ नहीं है।
कस्टम संरचना Time
है, जो दिन के कुछ घंटे और मिनटों का प्रतिनिधित्व करने के लिए उपयोग की जाती है। यह एक बहुत ही सरल अपरिवर्तनीय संरचना है और केवल कस्टम संरचना की समस्या को दर्शाने के लिए प्रदान की जाती है। कन्स्ट्रक्टर एक एकल तर्क लेता है जो hhmm
रूप में एक पूर्णांक के रूप में घंटे और मिनट है।
CREATE TABLE Lessons
(
ID INT,
Subject NVARCHAR(128)
TeacherID INT,
Day VARCHAR(9),
StartTime INT, // <-- Maps to custom type.
Periods INT
)
:
public class Lesson
{
public int ID { get; private set; }
public Teacher Teacher { get; internal set; }
public DayOfWeek Day { get; set; }
public Time StartTime { get; set; } // <-- Custom Type
public int Periods { get; set; }
}
इस वर्ग इस तालिका को सीधे नक्शे:
public struct Time
{
public Time(int hoursAndMinutes)
{
// Initialize Structure //
}
public int Hours { get; private set; }
public int Minutes { get; private set; }
public int HoursAndMinutes { get; private set; }
}
यह संरचना दिन के समय स्टोर करने के लिए सबक शुरू होता है Lesson
वर्ग के एक घटक के रूप में प्रयोग किया जाता है मैं इस संरचना को Lesson
वर्ग के घटक के रूप में मानचित्रित करने का एक तरीका ढूंढ रहा हूं, ताकि एनएचबीर्नेट संरचना पर एक संपत्ति मूल्य (किसी अन्य घटक की तरह) पढ़ सके। o कॉलम के लिए मान प्राप्त करें, लेकिन कॉलम से इकाई को इकाई में मानते समय कन्स्ट्रक्टर को कॉलम मान पास करके संरचना का एक नया उदाहरण प्रारंभ करेगा।
यदि आपके पास कोई सुझाव है, तो यह सुपर होगा। यदि आप मुझे बताना चाहते हैं तो यह IUserType
का उपयोग किए बिना पूरा नहीं किया जा सकता है, यह भी एक अच्छा जवाब है।
अच्छी जानकारी; आपके लिए +1 IUserType का उपयोग न करने की मेरी आवश्यकता यह देखने के लिए है कि वहां कौन से विकल्प उपलब्ध हैं, जिन्हें आपने कृपापूर्वक प्रदान किया है। –
निकोलस - यदि हमारे पास ऐसी संरचनाएं हैं जिनमें इकाई प्रकार (मान प्रकारों के विपरीत) शामिल हैं, तो क्या हम इन्हें IUserType के साथ मैप कर सकते हैं? यदि हां, तो कैसे; यदि नहीं, तो विकल्प क्या है? – fostandy