Отношения один-ко-многим не работают в NHibernate - PullRequest
0 голосов
/ 27 мая 2011

Я использую FluentHibernate и Automapping. Мои классы

public class Student
{
  public Student()
  {
    Books = new List<Book>(); 
  }
  public virtual int Id{get;private set;}
  public virtual string Name{get;set;}
  public virtual IList<Book> Books { get; private set; }
}

public class Book
{
  public  Book (){} 
  public virtual int Id{get;private set;}
  public virtual string Name{get;set;}
}

Now, I create book objects and to a student object, and call save.
Book b = new Book();
b.Name = "test"
Book b1 = new Book();
b2.Name = "test1" 

Student student = new Student();
student.Books.Add(b);
student.Books.Add(b1);
session.saveorupdate(student);

Только ученик спасен, а не книги. Что я делаю не так?

Ответы [ 2 ]

1 голос
/ 27 мая 2011

Вам нужно добавить Cascade.SaveUpdate() в ваш файл авторазметки. Это должно выглядеть примерно так:

HasMany(x => x.Books).Cascade.All();
0 голосов
/ 27 мая 2011

Я думаю, что это отношение «многие ко многим», а не «один ко многим» (чтобы назначить больше учеников одному уникальному предмету книги и наоборот).Поэтому вам нужно добавить public virtual IList<Student> Students { get; set; } в класс Book.Также вызовите метод save после добавления каждой книги, чтобы автоматически заполнить ее идентификатор из базы данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...