我在NH中描述数据库设置时遇到了一些麻烦。
我有以下课程:
public class BaseData
{
public virtual long Id { get; set; }
}
public class ExtendedData : BaseData
{
public virtual string Name { get; set; }
}
支持表如下所示:
BaseTable
---------
* Id
ExtendedTable
-------------
* Id
* Name
用例:我创建了一个我想要保留的ExtendedData实例。我期望两个表中的条目(序列中具有相同的Id)。
有人知道如何为此创建流畅的映射吗?
提前多多感谢!
的Seb
答案 0 :(得分:1)
由于您有基类,因此可以在映射时忽略它。使用.IgnoreBase<>()方法
示例:
autoPersistenceModel.IgnoreBase<AdvanceEntity>().IgnoreBase<BaseAchievableArea>().IgnoreBase<AuditableEntity>();
希望这会引导你走向正确。
答案 1 :(得分:0)
回顾过去,这太容易了......
public class BaseDataMapping : ClassMap<BaseData>
{
public BaseDataMapping()
{
this.LazyLoad();
this.Table("BaseTable");
this.Id(x => x.Id, "id").GeneratedBy.Native("SEQ_ID");
}
}
public class ExtendedDataMapping : SubclassMap<ExtendedData>
{
public ExtendedDataMapping()
{
this.LazyLoad();
this.Table( "ExtendedTable" );
this.Map(x=>x.Name, "Name" );
}
}