【问题标题】:How do I create this reference mapping in Fluent NHibernate?如何在 Fluent NHibernate 中创建此参考映射?
【发布时间】:2009-12-02 15:52:55
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-01
      • 2011-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多