Случайные int-идентификаторы, генерируемые для моделей в .net core 2.1 EF code first project - PullRequest
0 голосов
/ 17 сентября 2018

Я начинаю новый проект в .Net core 2.1 с использованием платформы сущностей - сначала код, и я вижу проблему с тем, как генерируются идентификаторы для моделей, которые я создаю - вместо увеличения на 1 для каждого нового Созданная модель, кажется, выбирает новый ключ в случайном порядке.

Я впервые создал свою модель:

public class Geo
{
    public int Id { get; set; }
    [Required]
    public string Name { get; set; }
}

Затем запустил Add-Migration для генерации моего скрипта миграции:

protected override void Up(MigrationBuilder migrationBuilder)
    {
        migrationBuilder.CreateTable(
            name: "Geos",
            columns: table => new
            {
                Id = table.Column<int>(nullable: false)
                    .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn),
                Name = table.Column<string>(nullable: false)
            },
            constraints: table =>
            {
                table.PrimaryKey("PK_Geos", x => x.Id);
            });
    }

    protected override void Down(MigrationBuilder migrationBuilder)
    {
        migrationBuilder.DropTable(
            name: "Geos");
    }

Затем запустил обновление базы данных, чтобы применить миграцию. Моя конечная точка контроллера для создания Geo выглядит следующим образом:

[HttpPost]
    public async Task<IActionResult> PostGeo([FromBody] GeoDto geoDto)
    {
        if (!ModelState.IsValid)
        {
            return BadRequest(ModelState);
        }

        // Create the geo
        Geo geo = _mapper.Map<Geo>(geoDto);
        _context.Geos.Add(geo);
        await _context.SaveChangesAsync();

        return CreatedAtAction("GetGeo", new { id = geo.Id }, geo);
    }

Теперь я запустил скрипт post для создания нескольких геообъектов, но вместо инкрементных идентификаторов они просто случайным образом - ниже приведен список геообъектов, которые я вижу:

[
{
    "id": 1,
    "name": "NA"
},
{
    "id": 2,
    "name": "NA"
},
{
    "id": 1002,
    "name": "NA"
},
{
    "id": 1003,
    "name": "NA"
},
{
    "id": 2003,
    "name": "NA"
},
….
]

Что может быть причиной этого?

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