我在X
和Y
之间有一个1..*
的关系,其中X
是父级。当我尝试删除记录Y
时,我收到以下异常消息:
Y
中的实体参与了“FK_Y_X”关系。找到了0个相关的“X”。预计1个“X”。
我目前正在以通用的、断开连接的方式尝试删除记录,方法如下:
public bool Delete(TEntity entity)
{
if (entity == null)
{
return false;
}
try
{
var entry = _context.Entry(entity);
entry.State = EntityState.Deleted;
_context.SaveChanges();
return true;
}
catch
{
return false;
}
}
传递的实体在相同的上下文中使用AsNoTracking()
加载。有任何想法吗?
Y
是一个子实体并且没有进一步的子实体。调用Set<TEntity>().Remove(entity)
会与已连接的结果相同。为了确认,我只想删除记录Y
,我对X
完全不感兴趣,所以X
没有被加载。 - Stuart Blackler