使用NHibernate在中间表上使用附加数据

时间:2008-12-08 18:00:02

标签: nhibernate nhibernate-mapping

我正在开发一个项目,用于将有关产品的信息输入到文档中。一个部分的表格可以根据特定产品的需要填写多次。然后,可以在多个相关文档上共享此表单上的信息。典型的多对多情况。区别在于,在中间表上,我想存储该特定文档的表单条目的特定信息。

以下是一些表格定义来说明这一点:

Document(
  Id int identity(1,1),
  Name nvarchar(256)
)

Form(
  Id int identity(1,1),
  FormData nvarchar(max)
)

DocumentForms(
  DocumentId int,
  FormId int,
  DocumentFormNumber varchar(64)
)

还有一些课程:

public class Document{
  public int Id { get; protected set; }
  protected IList<Form> Forms { get; set; }
}

public class Form {
  public int Id { get; protected set; }
  public string DocumentFormNumber { get; set; }
  public string FormData { get; set; }
}

有没有办法在阅读表单时创建支持读取附加数据的映射,作为与Document的多对多关系的一部分?在加载具有多对多关系的数据时,是否需要使用存储过程?我仍然需要能够加载Form对象而不将它们作为文档的一部分,但是一旦将它们添加到文档中,我需要它们具有基于一些简单规则生成的数字。但这个数字显然是特定于文件的。因此,虽然下一个文档可能使用相同的表单数据,但它需要一个新的数字。

有关如何实现这一目标的任何建议?

1 个答案:

答案 0 :(得分:3)

我在Billy McCafferty here的博客文章中找到了答案。