我尝试使用以下代码将一些内容异步添加到我的dbcontext中:
var entry = await _context.AddAsync(person);
但是,出现以下异常:
System.ArgumentNullException:值不能为null。参数名称:键
在System.ThrowHelper.ThrowArgumentNullException(ExceptionArgument参数)
在System.Collections.Generic.Dictionary`2.FindEntry(TKey键)
在System.Collections.Generic.Dictionary`2.TryGetValue(TKey键,TValue&值)
在Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.TryGetEntry(对象实体,IEntityType实体类型)
Microsoft.EntityFrameworkCore.ChangeTracking.Internal.NavigationFixer.InitialFixup(InternalEntityEntry条目,ISet`1 handleForeignKeys,布尔fromQuery)
在Microsoft.EntityFrameworkCore.ChangeTracking.Internal.NavigationFixer.StateChanged(InternalEntityEntry条目,EntityState oldState,布尔fromQuery)
在Microsoft.EntityFrameworkCore.ChangeTracking.Internal.InternalEntityEntryNotifier.StateChanged(InternalEntityEntry条目,EntityState oldState,布尔fromQuery)
在Microsoft.EntityFrameworkCore.ChangeTracking.Internal.InternalEntityEntry.FireStateChanged(EntityState oldState)
在Microsoft.EntityFrameworkCore.ChangeTracking.Internal.InternalEntityEntry.d__18.MoveNext()
---从上一个引发异常的位置开始的堆栈结束跟踪---
在System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)上
在Microsoft.EntityFrameworkCore.ChangeTracking.Internal.EntityGraphAttacher.d__6.MoveNext()
---从上一个引发异常的位置开始的堆栈结束跟踪---
在System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)上
在Microsoft.EntityFrameworkCore.ChangeTracking.Internal.EntityEntryGraphIterator.d__1`1.MoveNext()
---从上一个引发异常的位置开始的堆栈结束跟踪---
在System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)上
在Microsoft.EntityFrameworkCore.DbContext.d__64.MoveNext()
---从上一个引发异常的位置开始的堆栈结束跟踪---
在System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)上
在Microsoft.EntityFrameworkCore.DbContext.d__66`1.MoveNext()
---从上一个引发异常的位置开始的堆栈结束跟踪---
在System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)上
在System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
在PersonRepository.d__4.MoveNext()
---从上一个引发异常的位置开始的堆栈结束跟踪---
在System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)上
在System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
在PersonController.cs中的PersonController.d__3.MoveNext():第63行
在阅读这些语句时,我找不到我可能缺少的值。而且在调试时,我不知道要寻找什么。 如何找到调试时缺少的值?
答案 0 :(得分:1)
为您要添加的人定义的ID似乎为空。如果您没有配置数据库ID生成,那么在将其添加到上下文之前,需要为该人提供一个ID。