पर मैं एक विरासत डेटाबेस के साथ काम कर रहा हूँ, और मैं निम्न तालिकाओं है:NHibernate मानचित्रण कई लोगों के लिए एक नहीं प्राथमिक कुंजी
Person ExternalFile
------ ------------
Id (int, PK) Key (string)
ConnectionId (int) Type (int)
Name (string) ConnectionId (int)
Firstname (string) Path (string)
Id (int, PK)
एक निजी अनेक बाह्य फ़ाइलों है।
उदाहरण दिया:
Person A ExternalFile1 ExternalFile2
-------- ------------- -------------
Id: 1 Key: 'WN' Key: 'WN'
ConnectionId: 29 Type: 4 Type: 4
Name: 'Foo' ConnectionId: 29 ConnectionId: 29
Firstname: 'Bar' Path: 'C:/file1.txt' Path: 'D:/file2.txt'
Id: 1 Id: 2
मैं तो एक उपयोगकर्ता ExternalFiles का एक बैग है कि इस नक्शा कर सकते हैं?
मेरे mappingfiles
ExternalFile:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="Not.Relative" assembly="Not">
<class name="ExternalFile" table="tbl_externalfiles" lazy="false">
<id name="Id" column="`Id`">
<generator class="identity" />
</id>
<property name="Key" column="`CDKey`" />
<property name="ConnectionId" column="`KeyValue`" />
<property name="Type" column="`DocType`" />
<property name="Path" column="`Path`" />
</class>
</hibernate-mapping>
व्यक्ति:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="Not.Relative" assembly="Not">
<class name="Person" table="tbl_person" lazy="false">
<id name="Id" column="`Id`">
<generator class="identity" />
</id>
<property name="ConnectionId" column="`pairid`" />
<property name="Name" column="`name`" />
<property name="Firstname" column="`firstname`" />
</class>
</hibernate-mapping>
मेरे प्रश्न इस प्रकार दिखाई देगा:
SELECT *
FROM tbl_externalfiles
WHERE KeyValue = @p0
AND CDKey = @p1
AND DocType = @p2
@p0 = 29, @p1 = 'WN', @p2 = 4
तो मैं करने के लिए 3 मानकों देना है बैग फ्र बाहरी फ़ाइलों के लिए ओम व्यक्तियों,
1: व्यक्ति की ConnectionID
2: 'WN' < - हमेशा एक ही (कुंजी)
3: 4 < - हमेशा एक ही (प्रकार)
कई लोगों पर यह एक काम करता है जब मैं एक समग्र आईडी पर मैप करता हूं, लेकिन मैं इस मामले में इसका उपयोग नहीं कर सकता।
क्या कोई बैग यहां भी संभव है? क्या मुझे अपने बाहरी फाइलों को लाने के लिए एक अतिरिक्त क्वेरी का उपयोग करना चाहिए जहां मैं क्वेरी के मानदंड का उपयोग करता हूं।
संपादित करें:
मैं जानता हूँ कि मैं केवल connectionId
<bag name="Files" lazy="false">
<key column="KeyValue" property-ref="ConnectionId"/>
<one-to-many class="ExternalFile" />
</bag>
के लिए निम्न कर सकते हैं लेकिन मैं कैसे वहाँ अच्छी तरह से में टाइप करें और कुंजी पैरामीटर प्राप्त करने के लिए पता नहीं है।
धन्यवाद
वर्क्स सही कोशिश करो! धन्यवाद। –
बहुत बढ़िया! मैंने इसके बारे में भी नहीं सोचा था। –