1

我有一个系统,我需要能够在 Customer 和 Location 模型上添加 Comment 字段,但我无法触及现有表的架构。但是,我可以添加一个评论表。我已经简化了这个例子。我们希望能够将此评论添加到更多模型中,它们都使用 Guid 作为 Id。

该现有系统是具有自己的数据访问层的第 3 方系统。

我们才刚刚开始接触 NHibernate。据我所知,它看起来像一个加入地图。

例子:

public class Customer 
{
    public Guid Id { get; private set; }
    public string FirstName { get; private set; }
    public string LastName { get; private set; }
    public string Comment { get; set; }
}    

public class Location
{
    public Guid Id { get; private set; }
    public string Name { get; private set; }
    public string Address { get; private set; }
    public string Comment { get; set; }
}

注意:我们确定我们希望评论是一对一的关系,而不是一对多的关系。

如何配置一个单独的表,只捕获 Id 和 Comment?我正在寻找要使用的正确术语。我正在寻找带有 XML 的示例(如果可能的话,还有 Fluent 配置)。我想将所有对象的评论保留在一张表中。谢谢。

4

2 回答 2

0

如果您无法更改数据库架构,那么您的选择将非常有限。也许,你可以使用映射来做到这一点。看看这里:

http://ayende.com/blog/3961/nhibernate-mapping-join

尝试在所有实体的映射中使用相同的列名。

于 2013-04-01T18:33:48.747 回答
0

如果您可以添加注释表(以及现有表中的相应键列),则流畅的映射看起来像

public class CustomerMap : ClassMap<Customer>{
  public CustomerMap(){
        //...other columns mappings

        References(c=>c.Comment).Column("CommentId");
  }
}

并为其他实体重复它。您也可以在那里设置所需的 fetch-mode(join) 和其他操作。我在References那里写过(这么多对一),但如果你需要一对一的映射,那差别不大

于 2013-04-01T19:54:16.373 回答