Я просто строю модель и затем пытаюсь вставить ее в базу данных с помощью функции .SaveChanges()
, но когда я запускаю SaveChanges()
, я получаю ошибку базы данных, что произошел дубликат первичного ключа ...
поэтому я покопался в журнале SQL и обнаружил, что эта модель вставки пытается повторно вставить уже существующие данные ... почему это произошло?
Мой код
using (var dbContext = new dbContext(_dbContextOptions))
{
Request request = new Request()
{
RequesterId = 1,
HelpRequestType = helpRequestTypeObject, //new model is being inserted for this on .SaveChanges()
Status = statusObject, //new model is being inserted for this on .SaveChanges()
AssignmentKeyId = 12,
TimeCreated = DateTime.Now,
CustomContactIds = null
};
//add request to transaction
dbContext.Request.Add(request);
dbContext.SaveChanges();
}
РЕДАКТИРОВАТЬ: Итак, я изменил все, чтобы создать модель, используя только идентификаторы для ссылок на внешние ключи (без напрямую связанных сущностей), и это, похоже, решило мою проблему. После создания объекта и применения .SaveChanges () модель имеет ссылки на все остальные объекты, как и ожидалось. Кажется, я вызывал проблемы, используя сущности, которые ранее запрашивались в другом DbContext, чем активная, которую я использовал для создания этой новой сущности.