Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在fluent nhibernate中映射多对二关系_C#_Database_Fluent Nhibernate - Fatal编程技术网

C# 在fluent nhibernate中映射多对二关系

C# 在fluent nhibernate中映射多对二关系,c#,database,fluent-nhibernate,C#,Database,Fluent Nhibernate,我正在使用节点/链接结构,但使用fluent nhibernate映射它时遇到问题 这是我正在使用的类的简化 类节点 { 公共虚拟IList链接{get;set;} } 类链接 { 公共虚拟节点StartNode{get;set;} 公共虚拟节点EndNode{get;set;} } 一个节点可以有许多链接连接到它。 链路必须连接到两个节点 我需要知道哪个节点是开始节点和结束节点,所以它们必须是特定的。这就是为什么我不能使用列表并将其限制为两个节点 有人遇到过这个问题并找到了解决办法吗 编辑

我正在使用节点/链接结构,但使用fluent nhibernate映射它时遇到问题

这是我正在使用的类的简化


类节点
{
公共虚拟IList链接{get;set;}
}
类链接
{
公共虚拟节点StartNode{get;set;}
公共虚拟节点EndNode{get;set;}
}
一个节点可以有许多链接连接到它。 链路必须连接到两个节点

我需要知道哪个节点是开始节点和结束节点,所以它们必须是特定的。这就是为什么我不能使用列表并将其限制为两个节点

有人遇到过这个问题并找到了解决办法吗

编辑:澄清问题
我没有使用自动映射,我使用的是explisit映射方法:References、HasMany和HasManyToMany。基本上遵循介绍性教程中的方法:

我也没有数据库,我将使用nhibernate从映射创建数据库模式


我想问的是,如何创建多对二关系?

没有特殊的多对二关系,但您可能会这样做:

public class NodeMap : ClassMap<Node>
{
    public NodeMap()
    {
        //Id and any other fields mapped in node

        HasMany(x => x.Links);
    }
}

public class LinkMap : ClassMap<Link>
{
    public LinkMap()
    {
        //Id and any other fields mapped in node

        References(x => x.StartNode);
        References(x => x.EndNode);
    }
}
公共类节点映射:类映射
{
公共节点映射()
{
//Id和节点中映射的任何其他字段
有许多(x=>x.Links);
}
}
公共类链接映射:类映射
{
公共链接地图()
{
//Id和节点中映射的任何其他字段
参考(x=>x.StartNode);
引用(x=>x.EndNode);
}
}

同样,这只是上面的一个简要概述。例如,如果要级联任何创建/更新/删除操作,您可能需要额外的映射属性。

那么您的问题到底是什么?如何映射链接、节点或两者?另外,您是否正在进行自动映射,或者是否正在使用现有的数据库表(如果有,请发布这些表)?我已经更新了这个问题,希望它能澄清问题:)