0

2つのテーブルSituationSituationCategoryを更新しようとしていますが、以下のコードと画像で説明したように更新されていません。このスクリーンショットでEntity Frameworkの複数のエンティティを更新する

public async Task<bool> UpdateSituation(int id, SituationsDto data) 
{ 
    Situations result = _mapper.Map<SituationsDto, Situations>(data); 
    result.Deleted = true; 

    _context.Entry(result).State = EntityState.Modified; 
    await _context.SaveChangesAsync(); 

    SituationCategories situationCategory = new SituationCategories(); 

    if (result.SituationCategory != null) 
    { 
     if (situationCategory != null) 
     { 
      situationCategory.Description = result.SituationCategory.Description; 
     } 
    } 

    await _context.SaveChangesAsync(); 
} 

、私は更新されるべきデータを強調している:あなたが指定されたオブジェクトを添付しない限り、

答えて

0

アンEFコンテキストは、オブジェクトについて何も知らない答えてください

enter image description here

をコンテキスト、または最初にコンテキストからオブジェクトを取得した場合。

代わりに修正されたばかりのエンティティのマーキング:

_context.Entry(result).State = EntityState.Modified; 

あなたが修正さ&がそれをマークし、そう、あなたがSaveChanges()を呼び出すときに、変更がされるエンティティを追跡開始する、Update()を呼び出す必要がありますDBに書かれた:

_context.Update(result); 

PS。この場合、メソッドの最後にSaveChanges()に一度だけ電話をかけます。

+0

提案通り、1つのエンティティのみを更新しています。関連するエンティティは更新されません –

+0

あなたの 'Situation'エンティティはどのように見えますか?関連エンティティは '_mapper.Map (data);'コールで設定されますか? – steamrolla

+0

データベーステーブルを更新するために、incommingオブジェクトをdbcontextプロパティにマップするだけですが、状態テーブルのみを更新し、状況カテゴリテーブルも更新します。 –

関連する問題