gpt4 book ai didi

c# - 在同一张表上映射多对多关系

转载 作者:行者123 更新时间:2023-11-30 18:38:25 26 4
gpt4 key购买 nike

我正在使用 nhibernate 3.3.1 和 fluent-nhibernate 1.3。我尝试用流利的方式映射以下实体:

public class Person
{
public int Id { get; set; }
public string Name { get; set; }
public List<Person> Relations { get; set; }
}

如您所见,我这个人与其他一些人有关系。所以我对 DB-Table 进行了建模,如下所示:

    | Persons
----+----------------------
PK | Id int
| Name nvarchar(100)

| Relations
----+----------------------
PK | Id int
FK | Person1Id int
FK | Person2Id int

所以我想要一个映射,其中加载了人的关系,无论实际人是被引用为 Person1Id 还是 Person2Id。

这可能是流利的吗?如果不能,是否可以使用 hbn.xml 映射文件?

感谢帮助,科雷

最佳答案

您不能直接映射它。您需要创建两个属性:

public virtual IList<Person> Relations1 { get; set; }
public virtual IList<Person> Relations2 { get; set; }

然后创建一个合并它们的投影属性:

public virtual IEnumerable<Person> Relations
{
get { return Relations1.Concat(Relations2); }
}

(我假设你知道如何做第一部分;如果你不知道,请告诉我)

关于c# - 在同一张表上映射多对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11282118/

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