如何使用Nhibernate将主键添加到组件表?

时间:2011-10-31 17:25:08

标签: nhibernate fluent-nhibernate

我使用Fluent Nhibernate配置了Nhibernate应用程序。

在应用程序启动时使用SchemaUpdate自动生成数据库模式。

模型包含组件,这些组件在数据库中创建为没有主键的表。

需要使用MS SQL Server事务复制来复制数据库,这需要所有表上的主键。

有没有办法让架构更新工具将主键应用于这些表?

此致

1 个答案:

答案 0 :(得分:0)

nhibernate中的组件通常是引用对象的完全包含对象

以下内容来自Fluent-Nhibernate Mapping Documentation - ComponentMap<T>

public class Address
{
  public int Number { get; set; }
  public string Street { get; set; }
  public string City { get; set; }
  public string PostCode { get; set; }
}

public class Person
{
  public int Id { get; set; }
  public Address Address { get; set; }
}

public PersonMap()
{
  Id( x => x.Id );
  Component(x => x.Address, m =>
  {
    m.Map(x => x.Number);
    m.Map(x => x.Street);
    m.Map(x => x.City);
    m.Map(x => x.PostCode);
  });
}

数据库应该是

表:人

  • 编号
  • PostCode

链接: