0

Ich versuche, zwei Tabellen Situation und SituationCategory zu aktualisieren, aber es wird nicht aktualisiert, wie unten in Code und Bild erwähnt.Update mehrere Entitäten in 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(); 
} 

In diesem Screenshot habe ich die Daten hervorgehoben, die aktualisiert werden soll:

enter image description here

Bitte beantworten

Antwort

0

Ein EF Kontext kennt Objekte nichts, wenn Sie ein bestimmtes Objekt zu befestigen ein Kontext, oder Sie haben zunächst ein Objekt aus einem Kontext abgerufen.

Anstatt nur Kennzeichnung der Einheit als Änderung:

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

Sie werden Update() aufrufen müssen, die das Unternehmen beginnt Tracking & markiert es als modifizierte, also, wenn Sie SaveChanges() nennen, werden Veränderungen geschrieben in DB:

_context.Update(result); 

PS. Ich würde nur SaveChanges() einmal aufrufen, in diesem Fall am Ende Ihrer Methode.

+0

Gemäß Ihrem Vorschlag wird nur eine Entität aktualisiert. Die zugehörigen Entitäten aktualisieren nicht –

+0

Wie sieht Ihre Entität "Situation" aus? Werden die zugehörigen Entitäten in der '_mapper.Map (data); – steamrolla

+0

Es ist nur für die Zuordnung des eingehenden Objekts zu dbcontext -Eigenschaft für die Aktualisierung der Datenbank-Tabelle, aber es aktualisiert nur Situationstabelle und ich möchte Situation Tabelle Tabelle auch –

Verwandte Themen