流利的Nhibernate和HasOne()问题

时间:2011-01-21 21:41:49

标签: sql-server nhibernate sql-server-2008 fluent-nhibernate one-to-one

你如何与流利的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);
}

所以我尝试了这个,但它没有用。

2 个答案:

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