你如何与流利的nhibernate建立一对一的关系?我正在使用ms sql server 2008,每次通过数据库图表查看器查看db表时,应该具有一对一关系的表似乎没有它们。
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 :(得分:0)
为什么在Setting类上有类型为Setting的属性?它被称为用户,所以我希望它(也是因为你对问题的描述)而不是用户类。
答案 1 :(得分: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();
}
}