使用Fluent NHibernate进行父子映射不会插入子项

时间:2013-03-15 14:06:49

标签: fluent-nhibernate fluent-nhibernate-mapping

我正在尝试使用Fluent NHibernate映射一个非常基本的父子关系。 但是,在分析SQL时,只会创建父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的多个选项,但是没有任何成功。

1 个答案:

答案 0 :(得分:0)

对不起的人。我刚刚发现了它。 我在无国籍会议上工作。所以没有管理关系;)