0

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 の複数のオプションを試しましたが、成功しませんでした。

4

1 に答える 1

0

申し訳ありません。私はちょうどそれを見つけました。ステートレス セッションで作業しています。したがって、関係は管理されません;)

于 2013-03-15T14:13:39.790 に答える