отображение кода nhiberate не соответствует отображению XML - PullRequest
0 голосов
/ 16 мая 2018

Я пытаюсь преобразовать свое сопоставление xhibernate xml в сопоставление кода.

В моей базе данных MSSQL есть таблица CharacterMedia.

Внутри CharacterMedia 2 столбца:

characterId = PK, FK, bigint, not null 
mediaId = PK, FK, bigint, not null

могут быть повторяющиеся идентификаторы символов, но не повторяющиеся идентификаторы mediaIds ... поэтому один и тот же символ может иметь много записей mediaId.

Вот мое рабочее XML-отображение:

<bag name="Media" table="characterMedia" cascade="all">
  <key column="characterId" />
  <many-to-many column="mediaId" class="Game.Storage.GameMedia" />
</bag>

Вот мое сопоставление кода:

        //begin character media
        Bag(x => x.Media, cm => {
            cm.Schema("game");
            cm.Table("characterMedia");
            cm.Key(km => km.Column("characterId"));
            cm.Cascade(Cascade.All);
        }, rm => {
            rm.ManyToMany(m => m.Column("mediaId"));
        });
        //end character media 

Сопоставление кода генерирует исключения nullException при каждом запуске игры.Но XML-сопоставления нет.

Я что-то упустил в своем сопоставлении кода?

на всякий случай, вот мой сценарий создания таблицы characterMedia:

CREATE TABLE [game].[characterMedia](
    [characterId] [bigint] NOT NULL,
    [mediaId] [bigint] NOT NULL,
 CONSTRAINT [pk_characterMedia] PRIMARY KEY CLUSTERED 
(
    [characterId] ASC,
    [mediaId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO

ALTER TABLE [game].[characterMedia]  WITH CHECK ADD  CONSTRAINT [fk_characterMedia_characters] FOREIGN KEY([characterId])
REFERENCES [game].[characters] ([characterId])
ON DELETE CASCADE
GO

ALTER TABLE [game].[characterMedia] CHECK CONSTRAINT [fk_characterMedia_characters]
GO

ALTER TABLE [game].[characterMedia]  WITH CHECK ADD  CONSTRAINT [fk_characterMedia_userMedia] FOREIGN KEY([mediaId])
REFERENCES [media].[userMedia] ([id])
ON DELETE CASCADE
GO

ALTER TABLE [game].[characterMedia] CHECK CONSTRAINT [fk_characterMedia_userMedia]
GO

Спасибо!

...