我正在尝试用 Fluent NHibernate 映射一个非常基本的父子关系。但是,在分析 SQL 时,只创建了 parent-INSERT 语句。
这种情况是一个带有其他类列表的简单类。不需要与父级的关系。插入/更新父级时,需要插入/更新子级。
var room = new Room(); room.Name = "Room1"; room.Courses.Add(new Course(){ Name = "Course1"}); room.Courses.Add(new Course(){ Name = "Course2"}); using (var session = sessionFactory.OpenStatelessSession()) { using (var transaction = session.BeginTransaction()) { session.Insert(room); transaction.Commit(); } }
映射看起来像这样。
public class RoomMapping : ClassMap<Room> { public RoomMapping() { Table("Rooms"); Id(x => x.Id) .GeneratedBy.SeqHiLo("seq_rooms", "1000"); Map(x => x.Name); HasMany(x => x.Courses) .Cascade.All(); } } public class CourseMap : ClassMap<Course> { public CourseMap() { Table("Courses"); Id(x => x.Id) .GeneratedBy.SeqHiLo("seq_courses", "1000"); Map(x => x.Name); } }
我已经玩过 HasMany 的多个选项,但没有成功。