流利的NHibernate One-To-One只有一个外来列

时间:2014-06-18 19:26:13

标签: c# sql nhibernate fluent-nhibernate nhibernate-mapping

我的数据库中有2个一对一表,其中只有一个表有另一个表的外键。 这是我所拥有的一个例子

表1:容器
  - Id(PK)

表2:项目
- Id(PK)
- ContainerId(FK)

我可以将他们的关系配置为一对一,以便映射以下模型:

public class Container{
     public virtual int Id {get;set;}
     public virtual Item Item {get;set;}
}

public class Item{
     public virtual int Id {get;set;}
     public virtual Container {get;set;}
}

我可以将 Item 配置为拥有一个 Container,,因为它有明确的列,但是如何为 Container 完成?

谢谢!

1 个答案:

答案 0 :(得分:1)

这不是真正的一对一关系。两个主键中的两个主键必须相同才能成为一对一。 Container.Id!= Item.Id.这是many-to-one

在您的项目映射中,您将拥有以下内容:

Id(x => x.Id);
References(x => x.Container);

您的Container映射会类似。

http://www.jagregory.com/writings/i-think-you-mean-a-many-to-one-sir/