Как установить ключевой столбец ImMe многие ко многим с беглым Nhibernate - PullRequest
0 голосов
/ 03 июля 2011

Я использую 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"

как именно я могу назначить его?

1 Ответ

0 голосов
/ 13 июля 2011

таблицы ссылок, такие как 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
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...