如何在Fluent NHibernate中创建此参考映射?

时间:2009-12-02 15:52:55

标签: nhibernate fluent-nhibernate fluent-nhibernate-mapping

使用Fluent NHibernate我需要一个线索如何映射我的Invoice类。

public class Buyer
{
    public virtual int Id { get; set; }

    public virtual string Name { get; set; }
    public virtual string TaxRegNo { get; set; } 
    // .... more properties....
}

public class Invoice
{
    public virtual int Id { get; set; }

    public virtual int IdBuyer { get; set; }
    public virtual Buyer Buyer { get; set; } 
    // ....more properties
}

问题在于我想进入Invoice类:

  • BuyerId - 只是引用和外包关键字关系的整数ID
  • 几乎所有买家财产的副本(其会计凭证和财产在确认后无法更改) - 作为组件

我尝试使用以下映射,但它不起作用

    public InvoiceMap()
    {
        Id(x => x.Id);

        References(x => x.IdBuyer);
        Component(x => x.Buyer, BuyerMap.WithColumnPrefix("buyer_"));
    // ....more properties
    }

1 个答案:

答案 0 :(得分:4)

通常不会映射外键和子对象。如果你同时映射两者,那么在映射(或类似)中执行此操作:

References(x => x.Buyer);
Map(x => x.IdBuyer).Column("BuyerId").Not.Insert().Not.Update();

然后你不要在SQL语句中加倍列名,这会导致参数数量不匹配的错误。