我对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)
你知道这个问题以及如何解决它吗?
感谢。
答案 0 :(得分:0)
此问题的解决方案是将外键和相关实体分开。
在我的例子中,我在Vente Class中使用
users
在这种情况下,实体框架必须管理外键,但在我的情况下它不会。
所以我将实体修改为:
public virtual Etat etat { get; set; }
它已经完成了。现在外键已正确更新。