我正在尝试从表中删除多行数据。但在第一次迭代后,它会给出以下错误。我可以看到所有 xTestType
对象上的主键 Id
都为 0
。这可能是问题所在。为什么它总是给出 Id
为 0
。
foreach (var temp in oldxDetails.TestTypes)
{
if (deleteTestTypes.Contains(input.Id))
{
var xTestType = new xTestType
{
xId = xId,
TestTypeMasterId = temp.Id
};
await _xTestRepository.DeleteAsync(xTestType);
}
}
异常:
无法跟踪实体类型“xTestType”的实例,因为已经有另一个具有相同键的此类型实例正在被跟踪。当添加新实体时,对于大多数键类型,如果未设置键(即如果键属性分配了其类型的默认值),将创建唯一的临时键值。如果您明确为新实体设置键值,请确保它们不会与现有实体或为其他新实体生成的临时值发生冲突。在附加现有实体时,请确保只有一个具有给定键值的实体实例附加到上下文。
new xTestType()
中没有设置Id
吗? - aaron