gpt4 book ai didi

c# - 了解 nhibernate 映射中的递归关系

转载 作者:太空宇宙 更新时间:2023-11-03 10:57:44 25 4
gpt4 key购买 nike

假设我有一个像这样的实体页面

public class Page
{
public int Id {get; set;}
public string Title {get; set;}
public string Body {get; set;}
... to do
}

现在我想添加一个 Page 可以有一个或多个 Page 或一个或多个页面可以属于一个父 Page 的功能.

考虑到这一要求,您将如何做到这一点以及如何映射(使用 nhibernate)此页面实体?

任何类型的映射都可以(流畅的,通过代码,...)。

如果您需要更多信息,请询问。

最佳答案

你可以让他们 self 引用..有点像这样:

Page
----
Id INT PRIMARY KEY IDENTITY
Title VARCHAR(50)
Body VARCHAR(500)
ParentId INT

然后,在 Fluent 中,您将得到如下内容:

public class Page {
public virtual int Id { get; set; }
public virtual string Title { get; set; }
public virtual string Body { get; set; }
public virtual Page Parent { get; set; }
public virtual IList<Page> Children { get; set; }
}

public class PageClassMap : ClassMap<Page> {
public PageClassMap() {
Table("Page");
Id(x => x.Id).GeneratedBy.Identity();
Map(x => x.Title);
Map(x => x.Body);
References(x => x.Parent);
HasMany(x => x.Children).KeyColumn("ParentId");
}
}

关于c# - 了解 nhibernate 映射中的递归关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18823568/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com