Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Asp.Net MVC 4.5存储库更新方法,发生引用完整性约束冲突_C#_Asp.net_.net_Asp.net Mvc_Asp.net Mvc 4 - Fatal编程技术网

C# Asp.Net MVC 4.5存储库更新方法,发生引用完整性约束冲突

C# Asp.Net MVC 4.5存储库更新方法,发生引用完整性约束冲突,c#,asp.net,.net,asp.net-mvc,asp.net-mvc-4,C#,Asp.net,.net,Asp.net Mvc,Asp.net Mvc 4,我目前正在开发一个ASP.NETMVC4.5应用程序。我正在BLL中使用存储库模式。我正在尝试实现Update方法,并将updateOfferVM映射到我的originalofferpo 为了避免在Create和Update中重复代码,我使用OfferVmToOffer方法从我的viewmodel生成一个新的poco 不管怎样,当我尝试更新originalOffer时,我遇到了这个错误: 发生引用完整性约束冲突:关系一端的属性值与另一端的属性值不匹配 你对如何解决这个问题有什么想法吗 谢谢如果没

我目前正在开发一个ASP.NETMVC4.5应用程序。我正在BLL中使用存储库模式。我正在尝试实现Update方法,并将updateOfferVM映射到我的originalofferpo

为了避免在Create和Update中重复代码,我使用OfferVmToOffer方法从我的viewmodel生成一个新的poco

不管怎样,当我尝试更新originalOffer时,我遇到了这个错误:

发生引用完整性约束冲突:关系一端的属性值与另一端的属性值不匹配

你对如何解决这个问题有什么想法吗


谢谢

如果没有看到Offer模型、OfferVm和offervmtoffer视图模型,就很难回答这个问题,但是如何将代码更新为以下内容呢

public void UpdateOffer(OfferVm updatedOffer)
{
    var originalOffer = Db.Offer.FirstOrDefault(o => o.OfferId == updatedOffer.OfferId);

    if(originalOffer != null)
    {
        originalOffer.ActorPoolId = updatedOffer.ActorPoolId;
        originalOffer.SkillPoolId = updatedOffer.SkillPoolId;
        originalOffer.SwotPoolId = updatedOffer.SwotPoolId;
        originalOffer.TargetPoolId = updatedOffer.TargetPoolId;
        originalOffer.OfferData.DeliveryModelPoolId = updatedOffer.OfferData.DeliveryModelPoolId;

        Db.Entry(originalOffer).State = EntityState.Modified;
        Db.SaveChanges();
    }            
}

如果更改“tmpOffer.actorpolid=originalOffer.actorpolid;”,会发生什么情况至“originalOffer.actorpolid=tmpOffer.actorpolid;”在所有句子中,然后删除“originalOffer=tmpOffer;”?
public void UpdateOffer(OfferVm updatedOffer)
{
    var originalOffer = Db.Offer.FirstOrDefault(o => o.OfferId == updatedOffer.OfferId);

    if(originalOffer != null)
    {
        originalOffer.ActorPoolId = updatedOffer.ActorPoolId;
        originalOffer.SkillPoolId = updatedOffer.SkillPoolId;
        originalOffer.SwotPoolId = updatedOffer.SwotPoolId;
        originalOffer.TargetPoolId = updatedOffer.TargetPoolId;
        originalOffer.OfferData.DeliveryModelPoolId = updatedOffer.OfferData.DeliveryModelPoolId;

        Db.Entry(originalOffer).State = EntityState.Modified;
        Db.SaveChanges();
    }            
}