有沒有什麼辦法可以在NHibernate中建立對稱的自連接關係映射?假設我們有兩個表:NHibernate自加入多對多的對稱關係(人朋友問題)
Users
id
Relations
id
user1
user2
relation_type
用戶和關係類應該是這樣的:
class User
{
public virtual int Id { get; set; }
public virtual string Name { get; set; }
public virtual ISet<Relation> Relations { get; set; }
}
class Relation
{
public virtual int Id { get; set; }
public virtual User User1 { get; set; }
public virtual User User2 { get; set; }
// Let's leave the RealationType as string for the sake of brevity
public virtual string RelationType { get; set; }
}
我不想在relations
表有兩行相同的關係。但是關係必須是對稱的,這意味着如果兩個用戶A和B之間存在關係,則用戶A的集合必須包含與用戶B的關係,並且用戶B的關係必須包含與A的關係。
這聽起來像是一個挑戰。但是,有人能解決這個問題嗎?請,如果可以的話,發佈xml映射。我沒有使用Fluent。
好了,這樣的話,對於關係的映射將不會停... <類名=「關係」表=「關係」> <複合-ID> <鍵多對多-one name =「User1」class =「User」/> composite-id> 我該如何映射用戶類?由於id可以在'user1'或'user2'列中。 –
svallory
2009-11-29 18:57:18