2013-01-09 93 views
1

他们之间没有外键约束表中的列我有2代表这样映射到具有使用功能NHibernate

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引用行(它等于PKEY在TariffDeterminator)从TariffDeterminator但它们之间没有外键约束。

和他们的实体类都是这样

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实体流利NHibernate的映射?

回答

1

我从来没有使用过FluentNHibernate,但它应该是这样的

public class TariffConfigMap : EntityBaseMap<TariffConfig> 
{ 

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

} 

我不能看到你的实体类映射到的主键,我认为这些特性是继承和初始化过程中映射()。

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