开发者

how to set key column im many to many relation with fluent nhibernate

I am using flunet nhibernate and in a many to many relation I need to have key column for the table between these two entities

  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;
        }
    }
 }

the created table just consist of these two columns:PersonnelDocumentId,PositionId but I need a column Id for this conne开发者_StackOverflow社区ctor table "PersonnelDocumentSigner"

how exactly I can assign it?


link-tables like your PersonnelDocumentSigner normally dont need an Id column because PersonnelDocumentId and PositionId together are the Id/Primary key. If you still want to have additional Data in the linking Table you should Create a new Entity.

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
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜