作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我在 X
和 Y
之间有一个 1..*
关系,其中 X
是父级。当我尝试删除记录 Y
时,我收到以下异常消息:
Entities in 'Y' participate in the 'FK_Y_X' relationship. 0 related 'X' were found. 1 'X' is expected.
我目前正在尝试通过以下方式以通用的、断开连接的方式删除记录:
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()
加载。
有什么想法吗?
最佳答案
尝试向 X 添加一个公共(public)属性 YId,它将保持与 Y 的连接,这解决了我的问题,我将 Breeze 与 EF6 一起使用,但我遇到了同样的错误。
Class Y
{
public int Id { get; set; }
public ICollection<X> Xs { get; set; }
}
Class X
{
public int Id { get; set; }
public int YId { get; set; }
public Y Y { get; set; }
}
关于c# - 'Y' 中的实体参与 'FK_Y_X' 关系。找到 0 个相关的 'X'。预计 1 'X',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24733689/
我在 X 和 Y 之间有一个 1..* 关系,其中 X 是父级。当我尝试删除记录 Y 时,我收到以下异常消息: Entities in 'Y' participate in the 'FK_Y_X'
我是一名优秀的程序员,十分优秀!