我正在使用flunet nhibernate,并且在多对多的关系中,我需要在这两个实体之间有表的关键列
HasManyToMany(p => p.Signers)
//.Cascade.AllDeleteOrphan()
.Table("PersonnelDocumentSigner")
.Schema("personnel");
public partial class PersonnelDocument
{
private IList<Position> _signers;
virtual public IList<Position> Signers
{
get
{
if (_signers == null)
_signers = new List<Position>();
return _signers;
}
set
{
_signers = value;
}
}
}
创建的表只包含以下两列:PersonnelDocumentId,PositionId 但我需要这个连接器表“PersonnelDocumentSigner”
的列Id我究竟可以分配它?
答案 0 :(得分:0)
PersonnelDocumentSigner
这样的链接表通常不需要Id列,因为PersonnelDocumentId
和PositionId
一起是Id / Primary键。如果您仍想在链接表中添加其他数据,则应创建一个新实体。
class PersonnelDocumentSigner
{
public virtual PersonnelDocument Document { get; set; }
public virtual Position Signer { get; set; }
public virtual int Id { get; set; }
// additional Properties
}
class PersonnelDocumentSignerMap : ClassMap<PersonnelDocumentSigner>
{
Table("PersonnelDocumentSigner");
CompositeId()
.KeyReference(pds => pds.Document)
.KeyReference(pds => pds.Signer);
Map(pds => pds.Id);
// additional Mapps
}