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();   
    } 
}