2016-04-24 2 views
1

フレームワークの更新SQL要求エラー:エンティティ私はEF 6で奇妙なことだ

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

CommandeVenteクラスが継承されDossierVenteクラスから継承されます。私はこのコードを持つエンティティを更新しよう

Dossier Classからも。

私は、SQL要求は、エンティティの非常にいくつかのプロパティを取る生成コンテキストを保存し、修正1はしていないとき:

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

あなたはこの問題を知っていますし、どのようにそれを解決するために?

ありがとうございました。

+0

SQLには、値が変更されたプロパティのみが含まれていますか? –

+0

いいえ、このカスで唯一変更されたプロパティはEtat.id(SQLテーブルのFK Etat_id)であり、このプロパティはリクエストに含まれていません。サンプルリクエストのプロパティはまったく変更されていません。 – Julien

答えて

0

この問題の解決策は、外部キーと関連するエンティティを分離することでした。私はこの場合、Entity Frameworkをする必要があります私のVenteクラス

public virtual Etat etat { get; set; } 

に使用私のexempleで

はのForeignKeyを管理しますが、私の場合、それはしていません。

だから私は、にエンティティを修正:

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

そして、それは行われています。これで、外部キーが正しく更新されました。

関連する問題