NHibernate地图连接表有额外的列

时间:2016-05-25 06:34:42

标签: c# .net join nhibernate nhibernate-mapping

我有3个表:带有PK IdWorkspace和其他列的工作区,带有PK IdLanguage的语言和其他列,以及具有多个PK(IdWorkspace FK和IdLanguage FK)和extracolumn字符串Denomination的连接表WorkspaceFooter。我无法找到一种方法来映射Nhibernate中的那些,这是一种工作方式。

我应该如何写入.hbm.xml文件?我应该在Workspace中映射什么?一个集合,一个WorkspaceFooter等列表?

请记住,由于某种原因,Workspace中指向WorkspaceFooter的关系需要反向=" true"。 Workspace中的更新也必须强制更新WorkspaceFooter。

提前谢谢。

1 个答案:

答案 0 :(得分:0)

您需要明确:

  • 您需要的类模型(从业务逻辑派生,而不仅仅是数据库模型)
  • 您是否真的需要双向关系

你可以:

  • 将其映射为列表中的独立实体(这是需要最多管理代码的解决方案),
  • 将其映射为具有面额的复合元素和语言的多对一。它还使用C#中的特定类。可能是最直接的解决方案。
  • 将其映射为地图(C#中的字典),其中面额是关键(假设它在同一工作区内是唯一的,并且是访问语言的典型方式),
  • 可能您可以将其映射为列表并使用过滤器仅访问某个面额的数据。我没有过滤器的经验,我不知道你可能面临什么样的麻烦。