0

你如何與流利的nhibernate做1對1的關係?我使用ms sql server 2008,每當我通過數據庫圖表查看器查看數據庫表時,應該有一對一關係的表似乎都沒有。流利Nhibernate和HasOne()問題

Users 
UserId <pk> Guid 


Settings 
UserId <pk> Guid 


public Settings 
{ 
    public virtual Guid UserId {get; private set;} 
public virtual Setting User { get; set; } 

} 

public User 
{ 
    public virtual Guid UserId {get; private set;} 
public virtual Setting Setting { get; set; } 
} 


public class UserMap : ClassMap<User> 
{ 
     Id(x => x.UserId); 
    HasOne(x => x.Setting); 
} 

public class SettingMap : ClassMap<Setting> 
{ 
     Id(x => x.UserId); 
    HasOne(x => x.User); 
} 

所以我試了這個,但它沒有奏效。

+0

什麼沒有工作呢?它有錯誤嗎?你是否創建了表來查看生成的SQL?你有你的Id映射的約定,等等...... – Phill 2011-01-27 09:55:34

回答

0

爲什麼你的Setting類有Setting屬性?它被稱爲用戶,所以我期望它(也是因爲你的問題的描述),而不是它的用戶類。

0

我有一個類似的問題,無法看到任何關係正在生成。我終於發現這個工作:

public class ParentMap : ClassMap<Parent> 
{ 
    public ParentMap() 
    { 
     Id(x => x.Id); 
    HasOne(s => s.Child).Cascade.All(); 
    } 
} 

public class ChildMap : ClassMap<Model.Child> 
{ 
    public ChildMap() 
    { 
    Id(x => x.Id); 
    HasOne(s => s.Parent).Constrained().ForeignKey();   
    } 
}