Как заставить API или базу данных создавать новый GUID во время события POST - PullRequest
0 голосов
/ 21 февраля 2020

Я использую .NetCore 3.1 с Entity Framework для API, используемого в игре javascript. У меня есть контроллер, который при использовании клиентом имеет событие POST, которое создает новый объект Dungeon в базе данных. Я не хочу, чтобы клиент генерировал идентификатор на своем конце, я хочу, чтобы API или база данных делали это.

Вот метод POST-контроллера:

// POST: api/DungeonLists
[HttpPost]
public async Task<ActionResult<DungeonList>> PostDungeonList(DungeonList DungeonList)
{
    _context.DungeonList.Add(DungeonList);
    await _context.SaveChangesAsync();

    return CreatedAtAction("GetDungeonList", new { id = DungeonList.DungeonId }, DungeonList);
}

Это, сам по себе просто создает пустой GUID, как это: 00000000-0000-0000-0000-00000000000.

Итак, я подумал, что мне может понадобиться изменить базу данных.

Для столбца, который я хочу чтобы создать новый GUID, я добавил newsequentialid () для значения по умолчанию, например:

ALTER TABLE [dbo].[DungeonList] ADD  CONSTRAINT [DF_DungeonList_DungeonID]  DEFAULT (newsequentialid()) FOR [DungeonID]

Но даже с этим изменением я все еще получаю новые элементы с GUID 00000000-0000-0000- 0000-000000000.

Что я могу сделать не так?

Спасибо!

...