У меня есть сущность User
с парой отношений one-to-one
и many-to-many
и Identity primary key
и generic repository
, которые создаются при каждом запросе.
У меня есть форма регистрации с клиентом ипроверка сервера, и я решил отключить проверку клиента, чтобы проверить, как сервер будет вести себя в таком случае.
Я отключил проверку клиента, чтобы проверить форму регистрации, и поместил некоторые недопустимые значения, чтобы я вернулся, говоря, что у меня естьнекоторые ошибки, после того, как я исправил это, я получил очень интересную ошибку, говоря:
_context.SaveChanges(); //towing the error below:
Conflicting changes detected. This may happen when trying to insert multiple entities with the same key
Это было странно для меня, потому что я отделил сущность User
, но когда я нашел это Как очиститьКонтекст объекта Entity Framework? , поэтому вместо отсоединения только User
объекта я решил попытаться очистить контекст объекта, полностью запустив этот код:
var objectStateEntries = this.objectContext
.ObjectStateManager
.GetObjectStateEntries(EntityState.Added);
foreach (var objectStateEntry in objectStateEntries)
{
if(objectStateEntry.Entity != null)
this.objectContext.Detach(objectStateEntry.Entity);
}
Так что после этого все работало хорошо, и я не получилConflicting changes detected
ошибка больше, но мне все еще интересно, почему такая ситуация имела место, может быть, кто-то может объяснить?