Я работаю над проектом EF core 2.2 rest api.
Я создал свои модели и контекст, используя подход dbfirst и команду "Scaffold-DbContext".
Модель и контекст работают, но я заметил, что в коде контекста есть явные имена для внешних ключей:
modelBuilder.Entity<TrackingPoints>(entity =>
{
entity.HasKey(e => e.IdPosition);
entity.ToTable("myTable");
entity.Property(e => e.CaseId).HasColumnName("CaseId");
entity.HasOne(d => d.IGeoPosition)
.WithMany(p => p.TrackingPoints)
.HasForeignKey(d => d.IPositionId)
.OnDelete(DeleteBehavior.ClientSetNull)
.HasConstraintName("FK__Track__iGeoP__278EDA44");
});
(фактическая таблица имеет больше полей, но я оставляю ее короткой)
Меня беспокоит имя FK (HasConstraintName).
На самом деле этот код содержит информацию о взаимосвязи данных между таблицей, но также имеет явное имя для ограничения FK.
Я заметил, что в разных случаях этой БД (dev, preproduction ...) одно и то же ограничение имеет разные имена.
Я хотел бы знать, должен ли я дать ограничению FK одно и то же имя во всех экземплярах БД или отображение будет работать безупречно, несмотря на несоответствие именования ограничения. В среде разработки это работает, и имя FK совпадает с именем в модели. В разных средах первые тесты в порядке, но я не знаю, может ли проблема с именами создать какие-то неясные и труднодоступные побочные эффекты.