![](/img/trans.png)
[英]How to map composite foreign key to a non-primary unique key in FluentNHibernate?
[英]FluentNHibernate - Map Foreign Key As Primary Key
嗨,我正在尝试将数据库迁移到ORM,发现一个问题。 该数据库是采用继承的概念创建的,其中有一个父表和几个继承其属性的子表。 为了方便使用INNER JOIN进行查询,所有子表仅包含对父表标识的引用(同时是外键是主键)。 遵循模型:
BaseDocument
{
Id : Long
...
}
AdministrativeDocument
{
Id : Long (PK), (FK : BaseDocument(Id))
...
}
PropositionDocument
{
Id : Long (PK), (FK : BaseDocument(Id))
...
}
ProjectDocument
{
Id : Long (PK), (FK : BaseDocument(Id))
...
}
我的问题是:有什么方法可以创建映射,其中外键也是C#在FluentNHibernate中的主键,还是我必须为每个表创建单独的主键?
每个类继承层次结构都有一个标准表。 只需将其映射为
// inherit
class AdministrativeDocument : Document { }
// base class mapping
class DocumentMap : ClassMap<Document>
{
public DocumentMap()
{
Id(x => x.Id, "Id")...;
}
}
// subclass mapping, same for all three subtables
class AdministrativeDocumentMap : SubclassMap<AdministrativeDocument>
{
public AdministrativeDocumentMap()
{
KeyColumn("Id");
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.