我有2张这样的表
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映射吗?
答案 0 :(得分:1)
我从未使用过FluentNHibernate,但看起来应该是这样的
public class TariffConfigMap : EntityBaseMap<TariffConfig>
{
public TariffConfigMap() : base()
{
this.Initialize("TariffConfig");
References(prop => prop.Determinator)
.ColumnName("TariffDeterminatorCd");
}
}
我看不到实体类中映射的主键,我假设这些属性在Initialize()期间被继承和映射。
您通常不需要外键约束来映射实体之间的关系,您只需要外键本身。