2017-03-16 7 views
1

私はWPFでEF 6を使用しています。私は多くのDataSetsで作業しなければならないので、クエリにはAsNoTracking()を使用する必要があります。したがって、エントリの更新はViewModelの責任になります。私はrepository patternを使用しています、と私はこのようなgeneric repositoryのメソッドを実装することを考えています:Entity Framework 6手動でレコードを更新する

virtual public void Update(T updatedentity) 
{ 
    _ctx.Set<T>().Attach(updatedentity); 
    _ctx.Entry(updatedentity).State = EntityState.Modified; 
} 

が、これは良いアイデアですか?このアプローチの長所と短所は何ですか?最後に、重要なパフォーマンスヒットがありますか?ここで指摘しておきたいことは、私のエンティティの多くは15-20個の属性しか持たないことです。

答えて

0

はい、既にデータベースに存在するエンティティを添付して、その状態を[変更済み]に設定すると、すべてのTエンティティのプロパティを強制的に更新できます。

あなたがここに方法を添付の良い説明を読むことができます:Entity Framework 4 - AddObject vs Attach もここでEntityState.Modifiedの可能性のある影響をお読みくださいは答える@Gert:Entity Framework - Why explicitly set entity state to modified?

関連する問題