我正在使用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);
只保存学生而不保存书籍。我做错了什么?
答案 0 :(得分:1)
您需要将Cascade.SaveUpdate()
添加到自动化文件中。它应该看起来像:
HasMany(x => x.Books).Cascade.All();
答案 1 :(得分:0)
我认为这是多对多关系而不是一对多(将更多学生分配到一个独特的书籍项目,反之亦然)。
因此,您还需要将public virtual IList<Student> Students { get; set; }
添加到Book类。
在添加每本书后,还要调用save方法,以便自动从数据库填充其ID。