0

流暢な nhibernate と 1 対 1 の関係を築くにはどうすればよいですか? 私はms sql server 2008を使用していますが、データベースダイアグラムビューアーでdbテーブルを見るたびに、1対1の関係を持つべきテーブルにそれらがないようです。

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

同様の問題があり、関係が生成されているのを見ることができませんでした。私は最終的にこれが機能することを発見しました:

 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 に答える