Ich baue eine Dienstanwendung mit Web-API, .Net Core und EntityFramework Core.Entity Framework Core DbContext und Dependency Injection
Für Optionen in meinem DbContext Konfiguration ich diese Zeilen in „ConfigureServices“ -Methode in Startup.cs bin mit
var connection = @"Server=ISSQLDEV;Database=EventManagement;Trusted_Connection=True;";
services.AddDbContext<EMContext>(options => options.UseSqlServer(connection));
Ich weiß, dass wenn ich den Kontext als Konstrukteur Parameter in der Steuerung .Net hinzufügen wird Fügen Sie den Kontext in den Konstruktor ein.
Aber das ist nicht das Verhalten, das ich will. Ich möchte nicht, dass meine Web-API etwas über den dbcontext weiß. Ich habe ein DataAccess-Projekt mit einer Repository-Klasse, die alle CRUD-Operationen abwickelt.
Das bedeutet, dass ich nur sagen möchte Repository.AddEvent (evt) in meinem Controller und dann Repository weiß, wie damit umzugehen.
Auf der anderen Seite verwendet das Repository einen einfachen Abhängigkeits-Resolver, um die richtige "IDataAdapter" -Implementierung zu erhalten. Eine dieser Implementierungen ist SQLDataAdapter. Das ist der Punkt, an dem ich meinen Kontext brauche.
Wie kann ich meinen Kontext bis zu diesem Punkt weitergeben?