【发布时间】:2014-07-14 09:46:13
【问题描述】:
我在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()。
有什么想法吗?
【问题讨论】:
-
EntityState.Deleted does not work, Remove(entity) does? 的可能副本 - 不是一个确切的副本,但也许它可以很好地解释您的问题
-
@BartoszKP 实体
Y是一个孩子,没有其他孩子。调用Set<TEntity>().Remove(entity)后会产生相同的结果。确认一下,我只想删除记录Y,我对X根本不感兴趣,所以X没有加载。 -
你有对孩子而不是父母的约束吗?
标签: c# generics entity-framework-6