映射弱实体

时间:2012-03-05 12:06:35

标签: c# fluent-nhibernate

我得到了以下弱实体(没有WikiPage就不存在):

CREATE TABLE WikiPageTree 
(
    PageId int NOT NULL, 
    Title nvarchar(1000) NOT NULL, 
    Lineage nvarchar(1000) NOT NULL,
)

其中PageId是FK到Page.Id。这是一个1-1映射。

映射应该如何?我无法弄清楚如何指定fluent-nhibernate所需的Id映射。

我按照@WillDaBest的回答中的建议尝试了以下内容:

public class WikiPageTreeMap : ClassMap<WikiPageTreeNode>
{
    public WikiPageTreeMap()
    {
        Table("WikiPageTree");
        LazyLoad();

        Id(Reveal.Member<WikiPageTreeNode>("PageId")).GeneratedBy.Foreign("Page");
        HasOne(x=>x.Page).Constrained().ForeignKey();

        //Id(x => x.Page).Column("PageId");
        //References(x => x.Page).Column("PageId");
        Map(x => x.Path).Column("Title").Not.Nullable().Length(1000);
        Map(x => x.Lineage).Column("Lineage").Not.Nullable().Length(1000);
    }
}

但它给了我错误

  

{“必须声明标量变量\”@ p0 \“。”}

1 个答案:

答案 0 :(得分:3)

这可能有助于在Fluent nHibernate中映射一对一的关系:http://brunoreis.com/tech/fluent-nhibernate-hasone-how-implement-one-to-one-relationship/