2012-03-16 175 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