ben eski veritabanı ile çalışıyorum ve aşağıdaki tablolar vardır:NHibernate haritalama biri değil birincil anahtar
Person ExternalFile
------ ------------
Id (int, PK) Key (string)
ConnectionId (int) Type (int)
Name (string) ConnectionId (int)
Firstname (string) Path (string)
Id (int, PK)
Bir kişisel birçok harici dosyaları vardır.
Örnek verilen:
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
Bunu haritalayabilir kullanıcı ExternalFiles bir çanta vardır ki?
Benim 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>
Kişi:
<?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>
şu şekilde görünecektir My sorgusu:
SELECT *
FROM tbl_externalfiles
WHERE KeyValue = @p0
AND CDKey = @p1
AND DocType = @p2
@p0 = 29, @p1 = 'WN', @p2 = 4
Yani için 3 parametre vermek zorunda çanta fr Dış dosyalara om kişiler,
1: kişinin ConnectionID
2: 'TD'nin' < - hep aynı (anahtar)
3: 4 < - hep aynı (tür)
Birçoğuna birleşik bir kimliğe eşleştirdiğimde bu çalışır, ancak bu durumda bunu kullanamıyorum.
Burada bir torba bile mümkün mü? Sorgulamak için bir ölçüt kullandığım ExternalFiles'ı almak için fazladan bir sorgu kullanmalı mıyım?
DÜZENLEME:
Ben sadece connectionId
<bag name="Files" lazy="false">
<key column="KeyValue" property-ref="ConnectionId"/>
<one-to-many class="ExternalFile" />
</bag>
için aşağıdakileri yapabilirsiniz biliyorum Ama orada lutfen içinde Tipi ve Anahtar parametrelerin nasıl bilmiyorum.
Teşekkür
İşleri mükemmel deneyin! Teşekkürler. –
Harika! Bunu düşünmedim bile. –