Является ли создание экземпляра GUID в Entity Framework Core плохой практикой?
==============================================================================

 Если у меня есть модель с ключом типа `Guid` , это плохая практика, чтобы явно установить идентификатор в конструкторе? 

 Я знаю, что он будет установлен неявно Entity Framework, но произойдет ли что-нибудь плохое (возможно, с точки зрения производительности) от его явной настройки? 

 Пример: 

```
class MyModel
{
    public MyModel()
    {
        Id = Guid.NewGuid();
    }

    [Key]
    public Guid Id { get; set; }
}

```
  Я думаю, что `Guid` поддерживается с помощью последовательного идентификатора в SQL-сервере, и если я установлю значение явно, я полагаю, что снизит производительность индексации, потому что она больше не будет последовательной? 

 Я не смог найти ответ на этот вопрос, и мне очень любопытно. 

 Я вижу скорее недостаток дизайна, чем проблему производительности: модели не должны генерировать свои `id` . Это вне их ответственности. Репозитории делают это в методе `Add` . 

 `Guid` может быть сгенерирован разными способами: например, он может быть случайным или последовательным. Существуют разные алгоритмы для их генерации в любом случае. Поэтому вы закрываете свой выбор только для одного. 

 И вы форсируете момент, когда назначен `id` модели: вы не можете этого хотеть, чтобы отложить его назначение до тех пор, пока модель, возможно, не потребуется сохранять. *Например, нулевой `Guid` может быть полезно знать, что некоторая модель еще не является постоянной.*