Inyección de dependencia con Entity Framework Core tiene una excelente función de a través de la cual este marco le proporciona un objeto de cualquier clase que desee. Por lo tanto, no tiene que crear manualmente el objeto de clase en su código. ASP.NET Core Inyección de dependencia En este tutorial te enseñaré a usar el método de Inyección de Dependencia en . Esto le permitirá obtener los siguientes beneficios: Entity Framework Core 1. El objeto de la clase 'DbContext' a través de la inyección de dependencia. 2. Obtenga la cadena de conexión de 'appsettings.json' en lugar del método 'OnConfiguring()' de la clase 'DbContext'. Cadena de conexión dentro del método OnConfiguring() Normalmente, proporciona la cadena de conexión de su base de datos en el método de la clase de esta manera: OnConfiguring() DbContext invalidación protegida void OnConfiguring(DbContextOptionsBuilder optionsBuilder){if (!optionsBuilder.IsConfigured){optionsBuilder.UseSqlServer(@"Server=Smile;Database=Shop;Trusted_Connection=True;"); } } Este enfoque no es bueno ya que es mejor almacenar la cadena de conexión en el archivo . Después de aplicar la inyección de dependencia en , simplemente puede eliminar todo dentro del método de esta manera: appsettings.json Entity Framework Core OnConfiguring() invalidación protegida void OnConfiguring(DbContextOptionsBuilder optionsBuilder){if (!optionsBuilder.IsConfigured){}} Debe hacer los siguientes 3 cambios como se describe a continuación: 1. Cree el archivo appsettings.json para almacenar la cadena de conexión de la base de datos El código para el archivo que almacena el valor de la de datos se proporciona a continuación: appsettings.json cadena de conexión de la base {"ConnectionStrings": {"DefaultConnection": "Server=Smile;Database=Shop;Trusted_Connection=True;"}} 2. Cree el archivo appsettings.json para almacenar la cadena de conexión de la base de datos En su clase , vaya y agregue el constructor que hereda la clase base. También elimine la cadena de conexión del método . El código de la clase debería ser: DbContext OnConfiguring() DbContex public class ShopContext : DbContext{public ShopContext(DbContextOptions<ShopContext> options) : base(options) { }public DbSet<Products> Products { get; establecer; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { } protected override void OnModelCreating(ModelBuilder modelBuilder) { } } 3. Agregue la clase DbContext como un servicio en la clase Startup.cs Cambie la clase para obtener el objeto del espacio de nombres en su Constructor. Startup.cs IConfiguration Microsoft.Extensions.Configuration Dentro del constructor, establezca el valor de una propiedad pública de tipo con el valor del objeto dado en su parámetro. IConfiguration IConfiguration El código para esto es: Public Startup(IConfiguration configuración){Configuración = configuración;} Configuración pública de IConfiguration { get; } Este cambio lo ayudará a leer el archivo en la clase . appsettings.json Startup.cs A continuación, agregue la clase como un servicio dentro del método . Vea el siguiente código: DbContext ConfigureService() services.AddDbContext<ShopContext>(opciones => opciones.UseSqlServer(Configuración["ConnectionStrings:DefaultConnection"])); El código actualizado de la clase Startup debe ser: inicio de clase pública {inicio público (configuración de IConfiguration) {Configuración = configuración;} public IConfiguration Configuration { get; } public void ConfigureServices(IServiceCollection services) { services.AddDbContext<ShopContext>(options => options.UseSqlServer(Configuration\["ConnectionStrings:DefaultConnection"\])); services.AddMvc(); } public void Configure(IApplicationBuilder app, IHostingEnvironment env) { app.UseStaticFiles(); app.UseDeveloperExceptionPage(); app.UseMvc(routes => { routes.MapRoute(name: "default", template: "{controller=Home}/{action=Index}/{id?}"); }); } } Obtenga el objeto DbContext en el controlador usando la inyección de dependencia Ahora está listo y permítame mostrarle cómo obtener el objeto de la clase en el Constructor mediante . Todo lo que tiene que hacer es agregar el objeto de clase en el constructor del controlador y establecerle un valor de propiedad pública. DbContext Inyección de dependencia DbContext Puede aprender todo sobre la función Inyección de dependencias en este tutorial: Inyección de dependencias en ASP.NET Core Agrega el siguiente código al Constructor: ShopContext privado shopContext; Controlador de inicio público (Contexto de tienda sc){Contexto de tienda = sc;} Ahora está listo para usar Entity Framework Core para comunicarse con la base de datos. Para leer registros de la base de datos: shopContext.Teacher; Para crear registros en la base de datos: shopContext.Products.Add(producto);shopContext.SaveChanges(); Consulte el código actualizado del controlador que también enumera los métodos de acción que lee e inserta registros. clase pública HomeController : Controlador{private ShopContext shopContext;public HomeController(ShopContext sc){shopContext = sc;} public IActionResult Index() { return View(shopContext.Teacher); } public IActionResult Create() { return View(); } \[HttpPost\] public IActionResult Create\_Post(Products product) { if (ModelState.IsValid) { shopContext.Products.Add(product); shopContext.SaveChanges(); return RedirectToAction("Index"); } else return View(); } } Conclusión Espero que les guste este tutorial sobre . Es solo un paso para mejorar su código. Si te gusta este tutorial, dame y para 1 tutorial sobre desarrollo web cada semana. Entity Framework Core con Dependency Injection algunos aplausos sígueme Consulte también mi otro artículo en HACKERNOON: 7 problemas comunes de desarrollo web que todos los desarrolladores, desde principiantes hasta expertos, deben conocer [con múltiples soluciones]