Entity Framework назначает идентификатор - PullRequest
0 голосов
/ 25 мая 2018

Я работаю над программой, использующей базу данных SQL Server.Используя PUT / POST, я добавляю элементы в базу данных.Я запускаю некоторый код для данных, а затем удаляю их.Теперь проблема в том, что, когда я добавляю новые данные, добавленные данные добавляются со все более высоким номером идентификатора, а не начиная с 0.

Я искал вокруг и нашел то, что, как я думал, будет работать, чтодобавляет строку ниже над идентификатором.Это, однако, не работает, и я все еще получаю все большее число идентификаторов, когда помещается в базу данных.

Есть ли обходной путь для этого?

[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public virtual int Id { get; set; }

public int ProducedkW { get; set; }
public int ConsumedkW { get; set; }

public string Type { get; set; }
public int DifferencekW { get; set; }

Ответы [ 2 ]

0 голосов
/ 25 мая 2018

Как указано в комментариях, звучит так, будто вам нужен не столбец IDENTITY, а обычный столбец INT.

Удалив атрибут IDENTITY из столбца, вы можете свободно управлятьИдентифицирует себяПросто установите поле идентификатора в вашей сущности, и когда вы вызовете DbContext.SaveChanges, он позаботится об этом.

0 голосов
/ 25 мая 2018

Есть два возможных способа, которыми я могу придумать:

  1. Усеченная таблица вместо удаления записей. Может выдать исключение, если в какой-то другой таблице на нее ссылаются как на внешний ключ.
  2. Запустите SET IDENTITY_INSERT <table name> ON на сервере SQL, в основном он позволяет вам вводить значения явно в столбце идентификаторовНо имейте в виду, вам придется установить идентификатор в вашем коде.Но имейте в виду, что вы можете потерять уникальность своей колонки, тогда вам придется обеспечить ее прогаматику в своем коде.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...