Um Ihnen einen Kontext zu geben, habe ich versucht, einen Sämamer auf eine Weise zu implementieren, die ich für sicher halte, und ich mag die Art und Weise, wie er implementiert wird. < /p>
ab sofort Ich habe mit dem Initialisierer experimentiert, der in diesem Beispiel für saubere Architektur verwendet wurde: Beispiel < /p>
, aber aus irgendeinem Grund jedes Mal, wenn ich es implementiert habe. Meine Anwendung lässt meine Anwendung nicht normal laufen. Oder nicht abhängig, ob die Daten bereits vorhanden sind. ist genau wie im Beispiel. Erstellen eines neuen Bereichs und erhalten Sie den erforderlichen Service. Gefällt mir: < /p>
public static async Task InitialiseDatabaseAsync(this WebApplication app)
{
using var scope = app.Services.CreateScope();
var initialiser = scope.ServiceProvider.GetRequiredService();
await initialiser.InitialiseAsync();
await initialiser.SeedAsync();
}
< /code>
Der InitialISeasync ruft nur die: < /p>
auf await _context.Database.MigrateAsync();
< /code>
und die SeedaSync haben eine Reihe von Logik, die überprüft, ob die Daten, die ich säge, bereits vorhanden ist, und nur die relevanten Abhängigkeitsinjektionen, um sie zu verarbeiten. < /p>
Ich rufe diesen Initialisierer in meiner Pipeline wie so an: < /p>
public static async Task AddPipeline(this WebApplication app)
{
await app.InitialiseDatabaseAsync();
app.UseExceptionHandler();
app.UseHttpsRedirection();
app.UseAuthorization();
app.MapControllers();
}
< /code>
Wie Sie sehen können, ist sie Teil einer Erweiterung selbst. Programm.cs, aber das Ergebnis ist das gleiche. Neugierig oder mehr Kontext: Repository < /p>
Alle diese Bemühungen sind in der Hoffnung, meine eigene Iteration von sauberer Architektur zu erstellen und in gewisser Weise eine Blaupause für zukünftige Projekte zu schaffen. Daher wird jeder Rat, eine Ressource oder Anleitung zu diesem Ziel sehr geschätzt.
Vielen Dank für Ihre Zeit!
Probleme beim Säen durch einen Scoped -Service in ASP.NET CORE ⇐ C#
-
- Similar Topics
- Replies
- Views
- Last post