1

使用 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
    }
4

1 回答 1

4

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

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

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

于 2009-12-02T15:58:42.297 回答