首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >“Y”中的实体参与“FK_Y_X”关系。0个相关的'X‘。1 'X‘预期

“Y”中的实体参与“FK_Y_X”关系。0个相关的'X‘。1 'X‘预期
EN

Stack Overflow用户
提问于 2014-07-14 09:46:13
回答 4查看 11.6K关注 0票数 14

我在XY之间有一个Y关系,其中X是父关系。当我尝试删除记录Y时,我会收到以下异常消息:

“Y”中的实体参与“FK_Y_X”关系。0个相关的'X‘。1 'X‘预计。

我目前正试图以一种通用的、断开连接的方式删除该记录,其方式如下:

代码语言:javascript
运行
复制
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()加载。

有什么想法吗?

EN

回答 4

Stack Overflow用户

发布于 2014-12-21 17:13:53

尝试添加一个公共属性YId到X,这将保持连接到Y,这解决了我的问题,我使用Breeze与EF6,我有同样的错误。

代码语言:javascript
运行
复制
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; }
}
票数 5
EN

Stack Overflow用户

发布于 2016-05-22 16:23:43

当您context.Y.Attach(x);时,确保对象x保存父实体的"Id“。你两者都需要。

示例:

代码语言:javascript
运行
复制
x.Id = 3;
x.ParentEntity.Id = 10;

至少解决了我的问题。我把父母的身份证忘在我所附的物件上了。

票数 5
EN

Stack Overflow用户

发布于 2014-07-14 09:47:58

如果不再使用该实体,则可能必须允许父实体(X)上的空值或删除该实体。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24733689

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档