Nhibernate 有没有一种方法可以将一对一映射到where子句?

Nhibernate 有没有一种方法可以将一对一映射到where子句?,nhibernate,hibernate,nhibernate-mapping,hibernate-mapping,Nhibernate,Hibernate,Nhibernate Mapping,Hibernate Mapping,请原谅我对这一主题的无知,因为我对Hibernate/NHibernate比较陌生,但我遇到了一个无法理解的映射: 这就是我的数据库表的外观: <bincontents> <id>5873715</id> <title>Video Title</title> <sortorder>0</sortorder> <itemid>23079</itemid> <

请原谅我对这一主题的无知,因为我对Hibernate/NHibernate比较陌生,但我遇到了一个无法理解的映射:

这就是我的数据库表的外观:

<bincontents> 
  <id>5873715</id> 
  <title>Video Title</title> 
  <sortorder>0</sortorder> 
  <itemid>23079</itemid> 
  <itemtype>VIDEO</itemtype> 
</bincontents> 
<bincontents> 
  <id>5873716</id> 
  <title>Clip Title</title> 
  <sortorder>1</sortorder> 
  <itemid>131854</itemid> 
  <itemtype>CLIP</itemtype> 
</bincontents>

5873715
视频标题
0
23079
视频
5873716
剪辑标题
1.
131854
夹子
有没有一种方法可以将一对一映射到where子句

因此,BinContent对象可以具有视频或剪辑的ItemType。这些被设置为字符串,不幸的是,我无法更改

如果ItemType字段显示“VIDEO”,我希望有一个多对一的“VIDEO”对象, 但是,如果ItemType字段显示“CLIP”,我希望使用多对一剪辑

救命啊


我甚至不确定在这种情况下是否要使用多对一。也许是一对一?

你不能在你的类中同时包含视频和剪辑对象,并且确保它们不会同时被填充吗?可能需要您提供更多信息,例如当前的类结构。另外,每个Bin对象只会有一个视频,反之亦然吗?

您的类中不能同时有视频和剪辑对象,并且确保它们不会同时填充吗?可能需要您提供更多信息,例如当前的类结构。另外,每个Bin对象是否只会有一个视频,反之亦然?

我觉得您似乎有一个继承的候选对象。如果您有一个抽象基类型的BinContents,那么就有一个VideoBinContents派生类,它只包含一个视频映射,还有一个ClipBinContents,它只包含一个剪辑映射。您的itemtype是您的鉴别器。在这里查看更多信息:

在我看来,您似乎有一位继承人。如果您有一个抽象基类型的BinContents,那么就有一个VideoBinContents派生类,它只包含一个视频映射,还有一个ClipBinContents,它只包含一个剪辑映射。您的itemtype是您的鉴别器。查看此处了解更多信息:

也许这比您要查找的内容更复杂,但似乎您可以为您的垃圾箱设置基类,并拥有视频或剪辑的子类。使用继承的每类表层次结构,可以使用现有的表结构


这样做将允许您为每个子类提供不同的映射。

也许这比您正在寻找的要复杂,但似乎您可以为您的BIN设置一个基类,并拥有视频或剪辑的子类。使用继承的每类表层次结构,可以使用现有的表结构


这样做将允许您为每个子类提供不同的映射。

您可以查看任意映射。 使用“any”映射,您可以定义多态关联

检查


无论如何,我对你的“领域”不熟悉,但我认为吉姆也有道理。也许你应该检查一下你的数据模型和域模型(如果可能的话),看看这里是否有某种继承不合适。

你可以看看any映射。 使用“any”映射,您可以定义多态关联

检查

无论如何,我对你的“领域”不熟悉,但我认为吉姆也有道理。也许您应该检查一下您的数据模型和域模型(如果可能的话),看看这里是否有某种类型的继承不合适