繁体   English   中英

实体框架更新sql请求错误

[英]entity framework update sql request error

我对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)

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

谢谢。

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

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

public virtual Etat etat { get; set; }

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

所以我将实体修改为:

public int? etatId { get; set; }
public  Etat etat { get; set; }

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM