C# 实体框架4.1。更新实体。这个错误消息是什么意思?

C# 实体框架4.1。更新实体。这个错误消息是什么意思?,c#,asp.net-mvc,entity-framework-4,C#,Asp.net Mvc,Entity Framework 4,我正在尝试更新实体。代码部分工作,但是对于shopItem.GlaId的特定值,它似乎失败了 Gla实体确实存在,但ID失败 我看不出工作价值观和非工作价值观之间有什么区别。延迟加载适用于其他属性,但不适用于所讨论的Gla属性 我得到的错误是: UPDATE语句与外键约束“OrderItem_Gla”冲突。冲突发生在数据库“PPPContext”、表“dbo.Pap”、列“Id”中。 (注意shopItem扩展了orderItem) 我无法理解此错误消息的含义 public ActionResu

我正在尝试更新实体。代码部分工作,但是对于
shopItem.GlaId的特定值,它似乎失败了

Gla
实体确实存在,但ID失败

我看不出工作价值观和非工作价值观之间有什么区别。延迟加载适用于其他属性,但不适用于所讨论的Gla属性

我得到的错误是:

UPDATE语句与外键约束“OrderItem_Gla”冲突。冲突发生在数据库“PPPContext”、表“dbo.Pap”、列“Id”中。

(注意shopItem扩展了orderItem)

我无法理解此错误消息的含义

public ActionResult UpdateShopItem(ShopItem shopItem)
{
        var u = db.GetUser();
        var dbShopItem = db.ShopItems.Find(shopItem.Id)
        TryUpdateModel(dbShopItem);

        db.SaveChanges();

“dbo.Pap”似乎引用了“ShopItems”

而且您似乎通过了shopItem.Id
inside public ActionResult
UpdateShopItem(ShopItem ShopItem)`为null或空

在这里调试

 var u = db.GetUser();
并检查shopItem


解决方案:

确保shopItem具有正确的Id,或将shopItem设置为可为空的对象

ShopItem? shopItem
Nullable<ShopItem>  shopItem
ShopItem?商店商品
可为空的shopItem

一种愚蠢的错误,由剪切粘贴错误引起

店内商品:

public virtual Pap Gla { get; set; }
应该是:

public virtual Gla Gla { get; set; }

换句话说,我的一处房产的类型有误。我希望它能帮助别人

感谢您的回答,但不,这不是问题所在。只需检查dbShopItem是否包含所有字段!=空或空。。。但正如你所说,也许我们必须知道商店商品的结构才能做出决定