[英]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.