gpt4 book ai didi

c# - EntityFramework 5 - 已检测到对关系 'x' 的角色 'x' 的冲突更改

转载 作者:行者123 更新时间:2023-11-30 13:57:54 24 4
gpt4 key购买 nike

我有这个模型(动物模型):

    public int Id { get; set; }
public int AnimalSpecieId { get; set; }
public int AnimalBreedId { get; set; }
public Nullable<int> ProtectorId { get; set; }
public Nullable<int> OwnerId { get; set; }
public string Name { get; set; }
public virtual Owner Owner { get; set; }
public virtual Protector Protector { get; set; }

保护模型:

    public int Id { get; set; }
public string Name { get; set; }
public string Address { get; set; }
public string Phone { get; set; }
public string CellPhone { get; set; }
public string Email { get; set; }
public virtual ICollection<Animal> Animals { get; set; }

所有者模型:

    public int Id { get; set; }
public string Name { get; set; }
public string Address { get; set; }
public string Phone { get; set; }
public string CellPhone { get; set; }
public string Email { get; set; }
public virtual ICollection<Animal> Animals { get; set; }

当我第一次插入这个模型时,如果

ProtectorID = 1

OwnerID = null

没关系,但是,我尝试更新此模型,更改为:

OwnerID = 1

ProtectorID = null

我收到标题错误,有人可以帮我吗?

最佳答案

我不同意上面的回答。我不确定它是否永久解决了您的问题,因为该问题与空值分配无关。实际原因与DBContext有关。当我们执行任何 SaveChanges 时,需要正确分派(dispatch)上下文,以便继续执行下一个 SaveChanges 以使用不同的外键将另一条记录插入到同一项目的 DB 中.您只需在“context.SaveChanges()

之后添加以下行
context.Entry(your object).State = System.Data.Entity.EntityState.Detached;

这将解决冲突。具有相同上下文的多次插入会导致冲突。

如果我的评论以任何方式批评了您的回答,我们深表歉意。

关于c# - EntityFramework 5 - 已检测到对关系 'x' 的角色 'x' 的冲突更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19408041/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com