Свободные проблемы с Nhibernate и HasOne () - PullRequest
0 голосов
/ 22 января 2011

Как вы делаете отношения 1 к 1 с беглым nhibernate?Я использую MS SQL Server 2008, и каждый раз, когда я просматривал таблицы БД в средстве просмотра диаграмм базы данных, таблица, которая должна иметь отношения один к одному, кажется, не имеет их.

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 голосов
/ 30 декабря 2011

У меня была похожая проблема, я не мог видеть никаких сгенерированных отношений. Я наконец обнаружил, что это сработало:

 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();           
   }
}
0 голосов
/ 09 ноября 2011

Почему у вас есть свойство типа Setting в вашем классе Setting? Он называется User, поэтому я ожидаю (также из-за вашего описания проблемы), что это будет класс User.

...