Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.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# 如何在链接表之间建立多对一关系?_C#_Nhibernate_Nhibernate Mapping - Fatal编程技术网

C# 如何在链接表之间建立多对一关系?

C# 如何在链接表之间建立多对一关系?,c#,nhibernate,nhibernate-mapping,C#,Nhibernate,Nhibernate Mapping,我在获取正确的hbm.xml以通过链接表映射多对一关系时遇到问题: <class name="Car" table="Cars" lazy="true"> <id name="CarKey" type="int"> <generator class="native" /> </id> [properties]... <many-to-one ??? /> </class>

我在获取正确的hbm.xml以通过链接表映射多对一关系时遇到问题:

  <class name="Car" table="Cars" lazy="true"> 
    <id name="CarKey" type="int">
      <generator class="native" />
    </id>
    [properties]...
    <many-to-one ??? />
  </class>

  <class name="Driver" table="Drivers" lazy="true"> 
    <id name="DriverKey" type="int">
      <generator class="native" />
    </id>
    [properties]...
  </class>

  <class name="CarDriverLink" table="CarDriverLinks" lazy="true"> 
    <id name="CarDriverLinkKey" type="int">
      <generator class="native" />
    </id>
    <property name="CarKey">
      <column name="CarKey" sql-type="int" not-null="true" />
    </property>
    <property name="DriverKey">
      <column name="DriverKey" sql-type="int" not-null="true" />
    </property>
  </class>

[属性]。。。
[属性]。。。

假设在本例中,一辆车只能有一名驾驶员,但一名驾驶员可以有多辆车,我如何使用CarDriverLinks表将多对一关系添加到汽车映射中,以允许汽车查看哪个驾驶员可以驾驶它?

对于一对多,多对一不一定需要一个交叉引用表。这将给你一个多对多的关系。由于每辆车只有一个驾驶员,您可以将DriverID添加到您的车表和类中。你的司机仍然可以有多辆车。我使用Fluent-NHibernate,所以我不太记得XML映射,但看看这个问题,它解释了您要查找的其他内容

我想你想要的是一个多对多的关系,我知道我不一定需要一个交叉引用表,但我有一个,我需要使用它,因为我不能走简单的路线,将DriverKey FK添加到Car表中。