0

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

所以我尝试了这个,但没有奏效。

4

2 回答 2

0

为什么你的 Setting 类上有一个 Setting 类型的属性?它被称为 User 所以我希望它(也因为你对问题的描述)它是一个 User 类。

于 2011-11-09T01:16:19.537 回答
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();           
   }
}
于 2011-12-30T11:36:46.477 回答