Я начинаю новый проект в .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"
},
….
]
Что может быть причиной этого?