让NHibernate只存储一次唯一对象

时间:2010-08-31 09:57:54

标签: nhibernate

我在NHibernate中有四个表

Job
{
  DBID { int, primary key }
  Name { string }
  Media { fk_media (int) }
  PublishInfo { fk_publishinfo (int) }
}

Media
{
  DBID { int, primary key }
  TransmissionID { string }
  Series { string }
  Title { string }
  Description { string }
}

PublishInfo
{
  DBID { int, primary key }
  Destination { string }
  AudioTrack_1 { fk_audiolanguage }
  AudioTrack_2 { fk_audiolanguage }
  AudioTrack_3 { fk_audiolanguage }
  AudioTrack_4 { fk_audiolanguage }
}

AudioLanguage
{
  Code { string, primary key }
  Description { string }
}

我想用NHibernate实现的目的是它只存储唯一的记录。因此,如果多次使用媒体,则它们都指向相同的媒体条目。 PublishInfo也是如此。

我遇到的第二个问题是,当为audiotrack_3和4使用相同的音频语言时,它会给出会话中已经使用过的错误。

我会如何正确地做到这一点?

1 个答案:

答案 0 :(得分:0)

这是对我自己的问题的部分回答。在多个轨道上使用相同语言时,它在语言上无法正常工作的原因是因为它们在客户端和服务器应用程序之间来回发送。我解决这个问题的方法是将它接收回服务器我查找存储在服务器列表中的正确对象并替换它们。

我不认为这是正确的解决方案,但它有效。