Entity Framework Core полностью отключает генерацию значений первичного ключа - PullRequest
0 голосов
/ 09 февраля 2020

В настоящее время я должен использовать это:

modelBuilder.Entity<ClassName>().Property(p => p.id).ValueGeneratedNever();

, чтобы отключить 0, превращающийся в 1 и вызывающий проблему дубликата ключа, когда я вставляю ClassName с первичным ключом id = 0.

Честно говоря, это поведение действительно раздражает, и мне нужно отключить его глобально для этой модели, как мне это сделать, не вставляя 200+ вышеуказанного кода для каждого поля? У меня есть много составных первичных ключей, которые могут использовать 0 в качестве значения.

Редактировать: проблема в Postgresql. Пожалуйста, смотрите { ссылка } для той же проблемы и как повторить это. Это происходит при db.SaveChanges();, где db - контекст базы данных.

Редактировать 2: Кажется, что этот код работает:

foreach (var property in modelBuilder.Model.GetEntityTypes()
                .SelectMany(t => t.GetProperties())
                .Select(p => modelBuilder.Entity(p.DeclaringEntityType.ClrType)
                    .Property(p.Name)))
{
    property.ValueGeneratedNever();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...