ASP дает Нарушение ограничения PRIMARY KEY по конкретному идентификатору. (Я произвольно генерирую ID в коде, проверяя, что они еще не существуют в базе данных).Нарушение ограничения PRIMARY KEY при публикации на Azure
Когда я отлаживаю этот код на своем локальном компьютере (с той же базой данных Azure), все работает нормально. Когда я публикую свой код на Azure, я получаю ошибку. Странно то, что случайный идентификатор, полученный ошибкой, НЕ существует в моей базе данных.
кода (скопировать список лекарств с новым идентификатором & новый schemeID):
метод List<medication> l = db.medication.AsNoTracking().Where(x => x.scheme_ID == schemeID).ToList();
foreach (medication m in l) {
int id = generateUniqueMedicationID();
m.ID = id;
m.scheme_ID = newSchemeID;
db.medication.Add(m);
}
db.SaveChanges();
generateUniqueMedicationID():
private int generateUniqueMedicationID()
{
bool stop = true;
int id = -1;
while (stop)
{
Random r = new Random();
id = r.Next(100000000, 1000000000);
if (!db.medication.Any(o => o.ID == id)) stop = false;
}
return id;
}
Как определяется столбец PK в таблице на SQL-сервере? – Sparrow
Что означает 'generateUniqueMedicationID'? Почему вы не следуете стандартным соглашениям об именах C#? – mason
Установите таблицу 'Первичный ключ' в' Identity (1,1) ', чтобы он автоматически увеличивался каждый раз, когда строка добавляется в таблицу. –