-1

私はNHibernateにかなり慣れていないので、この種のマッピングを機能させるのに問題があります。NHibernate 2.1.0.GA と NHibernate.Mapping.Attributes 2.0 を使用しています。

親子関係としてそれ自体に関連する単一のテーブル (t_Posts) があります。

t_Posts
------------------------
(PK) PostID bigint
     DatePosted datetime
     Body nvarchar(1000)
(FK) ParentPostID bigint

子投稿のセットであるクラス (Post) にプロパティ (Children) が必要です。マッピングにクラス属性を使用していますが、これがあります。

[Class(Table="t_Posts",Lazy=true)]
public class Post
{
    [Id(Name="PostId")]
    public virtual long PostId { get; set; }

    [Property(Column="DatePosted")]
    public virtual DateTime DatePosted { get; set; }

    [Property(Column="Body")]
    public virtual string Body { get; set; }

    [Property(Column="ParentID")]
    public virtual long ParentId { get; set; }

    [Set(0,Name="Children",Inverse=true,Cascade="all-delete-orphan", Lazy=true)]
    [Key(1,Column="ParentId")]
    [OneToMany(2,Class="Post")]
    public virtual ISet<Post> Children { get; set; }
}

ただし、これを実行すると、「関連付けがマップされていないクラスを参照しています: Post」という例外が発生します。同じクラス内ではできませんか?

4

1 に答える 1