实体框架更新sql请求错误

时间:2016-04-24 13:46:43

标签: c# entity-framework

我对EF 6感到奇怪:

我尝试使用以下代码更新实体:

public void Update(ref CommandeVente vente)
{
    Ctx.Etat.Attach(vente.etat);
    Ctx.Entry<Dossier>(vente).State = EntityState.Modified;
}

CommandeVente Class继承自DossierVente类,该类也从Dossier类继承。

当我保存上下文时,生成的SQL请求只占用实体的很少属性,而修改后的属性不在:

UPDATE [dbo].[Dossiers]
SET [verrouile] = @0, [numDossier] = @1, [dateCreation] = @2, [dateCloture] = NULL, [tva] = @3, [PrixHT] = @4, [prixTTC] = @5
WHERE ([id] = @6)

你知道这个问题以及如何解决它吗?

感谢。

1 个答案:

答案 0 :(得分:0)

此问题的解决方案是将外键和相关实体分开。

在我的例子中,我在Vente Class中使用

users

在这种情况下,实体框架必须管理外键,但在我的情况下它不会。

所以我将实体修改为:

public virtual Etat etat { get; set; }

它已经完成了。现在外键已正确更新。