Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.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# 具有额外列的NHibernate映射联接表_C#_.net_Join_Nhibernate_Nhibernate Mapping - Fatal编程技术网

C# 具有额外列的NHibernate映射联接表

C# 具有额外列的NHibernate映射联接表,c#,.net,join,nhibernate,nhibernate-mapping,C#,.net,Join,Nhibernate,Nhibernate Mapping,我有3个表:带有PK IdWorkspace和其他列的Workspace,带有PK IdLanguage和其他列的Language,以及带有多个PK(IdWorkspace FK和IdLanguage FK)和列外字符串命名的联接表WorkspaceFooter。我找不到一种方法来绘制Nhibernate的地图,一种有效的方法 如何写入.hbm.xml文件?我应该在工作区映射什么?集合、工作空间页脚列表等 请记住,由于某些原因,工作区中指向WorkspaceFooter的关系需要为reverse

我有3个表:带有PK IdWorkspace和其他列的Workspace,带有PK IdLanguage和其他列的Language,以及带有多个PK(IdWorkspace FK和IdLanguage FK)和列外字符串命名的联接表WorkspaceFooter。我找不到一种方法来绘制Nhibernate的地图,一种有效的方法

如何写入.hbm.xml文件?我应该在工作区映射什么?集合、工作空间页脚列表等

请记住,由于某些原因,工作区中指向WorkspaceFooter的关系需要为reverse=“true”。工作区中的更新也必须强制工作区页脚中的更新


提前感谢您。

您需要清楚:

  • 所需的类模型(源自业务逻辑,而不仅仅是数据库模型)
  • 是否真的需要双向关系
你可以:

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

您需要清楚:

  • 所需的类模型(源自业务逻辑,而不仅仅是数据库模型)
  • 是否真的需要双向关系
你可以:

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

谢谢,我同时更改了桌子。谢谢,我同时更改了桌子。