Wie funktioniert das Entity Framework SaveChangesAsync?

9
%Vor%

Und hier ist, was ich testen möchte:

%Vor%

AddCustomers Test besteht.

AddCustomersAsync test schlägt fehl, ich erhalte immer eine NullReferenceException nach dem Aufruf von await DbContext.SaveChangesAsync() .

  

um   MasonOgCRM.DataAccess.EF.EntityFrameworkRepository.d__2.MoveNext ()   im   C: \ Benutzer \ Mason \ Desktop \ Repositories \ masonogcrm \ src \ DataAccess.EFrepository \ EntityFrameworkRepository.cs: Zeile   43

Ich kann in meinem Code nichts sehen, was null ist. DbContext ist nicht null. Der äquivalente Test von AddCustomers , der identisch mit der Ausnahme ist, dass er nicht asynchron ist, wird wie erwartet ausgeführt. Ich vermute, ich habe keine korrekte Konfiguration von SaveChangesAsync in SetupDBContext() durchgeführt, aber ich weiß nicht, was ich tun soll, um es zu beheben.

    
mason 26.09.2015, 04:49
quelle

2 Antworten

9

Sie haben Recht, das Problem tritt auf, weil eine Ihrer Einstellungen nicht korrekt ist: dbContext.Setup(c => c.SaveChangesAsync()).Verifiable(); .

Die Methode gibt eine Task zurück und Sie haben vergessen, eine Task zurückzugeben, daher null returns.

Sie können dbContext.Setup(c => c.SaveChangesAsync()).Verifiable(); oder entfernen Ändere das Setup in etwa wie folgt:

%Vor%     
Old Fox 26.09.2015, 10:34
quelle
3

Sie könnten

verwenden %Vor%

und

%Vor%     
Arijus Gilbrantas 01.06.2016 10:57
quelle