2012-03-16 219 views
0

爲此,我已經搜索了很多解決方案,但唯一出現的是使用FH映射而不是XML-mappng的解決方案。 我正在使用QR掃描系統,兩個用戶可以掃描海誓山盟。如果一個用戶拍攝了其他用戶,他們的ID就被填入了這張表格中。所以這兩個FK將是獨一無二的。 1-2。 2-1,1-3 所以我的域名實際上包含這兩個類:將兩個外鍵映射到一個主鍵(XML映射)

public class SnappedUsers 
{ 
    public virtual User Shooter {get; set;} 
    public virtual User Target { get; set; } 
    public virtual DateTime SnapDate { get; set; } 
} 
public class User : Entity 
{ 
    public virtual string DisplayName { get; set; } 
    public virtual string EmailAddress { get; set; } 
    public virtual string Password { get; set; } 
    public virtual string ProfilePicUrl { get; set; } 
    public virtual int Money { get; set; } 
    public virtual DateTime RegistrationDate { get; set; } 
} 

表SnappedUsers應包含在用戶表中的兩個外鍵。 (我沒有必要將Shooter ISet和Target ISet放到我的用戶類中。) 我如何實際上必須用XML映射映射這些東西?現在我沒有看到自己的解決方案。

THX提前

+0

你不能基本上,因爲消息有什麼獨特和NHibernate需要某種身份的,如果它不是一個組成部分。 – Firo 2012-03-16 11:25:03

+0

@Firo好的,thx爲您的答覆。你說得對,他們確實沒有什麼獨特之處。消息示例實際上是一個例子,可以給出更好的解釋。我的真實世界應用程序是關於掃描每個其他QR碼。如果您(id = 1)和我(id = 2)註冊,我們都會獲得QR碼。當我掃描你的或ID將被添加到這張表作爲外鍵。當你掃描我時你是射手,我是目標。所以我們的兩把鑰匙是獨一無二的。 – Gigi2m02 2012-03-16 12:51:46

回答

2
<composite-id> 
    <key-many-to-one name="Shooter" column="shooter_Id" > 
    <key-many-to-one name="Target" column="target_Id" /> 
</composite-id> 
+0

昨天有人說我一樣,但建議我使用額外的唯一ID代替。你對此有何看法? – Gigi2m02 2012-03-17 13:15:36

+0

它可以讓擁有多個SnappedUsers的相同參考文件變得更容易,並且不會造成傷害 – Firo 2012-03-18 02:42:59

+0

是的,這是真的。但它並不是打算多次捕捉一個用戶。 – Gigi2m02 2012-03-18 03:14:40