2013-01-09 170 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");   
    } 

} 

我不能看到你的實體類映射到的主鍵,我認爲這些特性是繼承和初始化過程中映射()。

您通常不需要外鍵約束來映射實體之間的關係,您只需要外鍵本身。