我有一个控制台.NETCore2.1应用程序,它使用的是EFCore2.1。它与数据库通信以读取和插入行。同时,其他应用程序也在更新此数据库。
无法跟踪实体类型“XYZ”的实例,因为已在跟踪另一个键值为“{ID:11,ABC:136,DEF:97}”的实例。附着现有实体时,请确保仅附着一个具有给定键值的实体实例。
下面是我的代码
var entity = PopulateValuesFor(XYZ);
var existingXYZ = _Context.TABLE1
.Include(r => r.TABLE2)
.Include(r => r.TABLE3)
.AsNoTracking()
.FirstOrDefault(r => r.Id == 1234);
if (existingXYZ == null)
{
_Context.Add(entity);
}
流程是
-
上述代码称为-->行已安装
-
-
再次调用上述代码-->例外
如何告诉DbContext实体不再在数据库中。。。清除您的条目并再次将此行添加到数据库?因为它是一个控制台应用程序,所以只使用了DbContext的一个实例,get被注入到实现这个方法的类中。