【问题标题】:Mapping a column to a table which has no foreign key constraint between them using fluent Nhibernate使用流利的 Nhibernate 将列映射到它们之间没有外键约束的表
【发布时间】:2013-01-09 15:03:23
【问题描述】:

我有两张这样的桌子

CREATE TABLE [dbo].[TariffConfig]
(
     PKey INT IDENTITY NOT NULL,
     TariffDeterminatorCd INT NOT NULL
)

CREATE TABLE [dbo].[TariffDeterminator]
(
     PKey INT IDENTITY NOT NULL,
     Tariff INT NOT NULL
)

TariffDeterminatorCd 引用了来自 TariffDeterminator 的一行(它等于 TariffDeterminator 中的 PKey),但它们之间没有外键约束。

他们的实体类是这样的

public class TariffDeterminator : EntityBase
{       
    public virtual Int32 Age { get; set; }

    public virtual Int32 Tariff { get; set; }
}

public class TariffConfig : EntityBase
{
    public virtual TariffDeterminator Determinator{ get; set; }
}

我有一个像这样的 TariffDeterminator

public class TariffDeterminatorMap : EntityBaseMap<TariffDeterminator>
{       
    public TariffDeterminatorMap ()
        : base()
    {
        this.Initialize("TariffDeterminator");
        Map(x => x.Age).Not.Nullable();
        Map(x => x.Tariff).Not.Nullable();
    }
}

谁能帮我为 TariffConfig 实体编写 Fluent Nhibernate 映射?

【问题讨论】:

    标签: c# nhibernate fluent-nhibernate


    【解决方案1】:

    我从未使用过 FluentNHibernate,但它应该看起来像这样

    public class TariffConfigMap : EntityBaseMap<TariffConfig>
    {
    
        public TariffConfigMap() : base()
        {
           this.Initialize("TariffConfig");
           References(prop => prop.Determinator)
                .ColumnName("TariffDeterminatorCd");           
        }
    
    }
    

    我看不到实体类中映射的主键,我假设这些属性是在 Initialize() 期间继承和映射的。

    您通常不需要外键约束来映射实体之间的关系,您只需要外键本身。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-08
      • 1970-01-01
      • 2010-12-26
      • 2012-12-09
      • 2010-12-01
      • 2014-07-04
      • 1970-01-01
      相关资源
      最近更新 更多