Наследование картографирования NHibernate с использованием имени объекта - PullRequest
0 голосов
/ 05 марта 2019

Вот мой сценарий. Используя NH, я пытаюсь отобразить те же 2 класса, Пользователь и Компанию (которые наследуют от Стороны), в одну и ту же таблицу Сторон И сопоставить их в свои собственные таблицы Пользователей и Компаний.Как я понимаю, способ сделать это - использовать опцию имени сущности.

Проблема в том, что даже при определении сопоставления только один раз, я получаю исключение, говорящее о том, что я пытался сопоставить тип без сопоставления,Мои сопоставления: Party is abstract

public PartyMapping() : ClassMapping<Party>
{
  Table("Parties");
  Id(d => d.Id, m => m.Generator(Generators.Assigned));  

  EntityName("SomePartyName");

  Discriminator(d=>
                 {
                   d.Column("PartyType");
                   d.Force(true);
                   d.Insert(true);
                   d.NotNullable(true);

                   d.Type(NHibernate.NHibernateUtil.String);
                 });

  Property(d => d.SaleAmountUSD);
} 

public UserMapping() : SubclassMapping<User>
{
  EntityName("SomeUserName");
  DiscriminatorValue("User");
}

public CompanyMapping() : SubclassMapping<Company>
{
  EntityName("SomeCompanyName");          
  DiscriminatorValue("Company");
}

Компиляция сопоставления завершается с сообщением Невозможно расширить не отображенный класс: Party

Если я опущу EntityName ("SomePartyName");из моего сопоставления партии, тогда компиляция сопоставления ОК, но, очевидно, я не могу также сопоставить сущность партии с другой таблицей.

Я думаю, мне нужно найти способ указать, дляотображения производных классов, какое имя сущности суперкласса использовать.Но я не понял, как ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...