Search code examples
model-view-controllerdbcontext

How to properly configure the `services.AddDbContext` of `ConfigureServices` method in MVC 8.0


I am trying to add migartion to my database i keep having this error.Please  i am  a rookie to MVC.My code

using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.DependencyInjection;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;

namespace DemoRepository.Model
{
    public class ProdDBContext : DbContext
    {
        public DbSet<Worker> Workers { get; set; }

        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {

            if (optionsBuilder.IsConfigured)
            {
                optionsBuilder.UseSqlServer("Server=DESKTOP-1M2N4KR\\EMMA;Database=Rocky;Integrated Security=true; Trusted_Connection=True;TrustServerCertificate=True;");


            }
            base.OnConfiguring(optionsBuilder);
        }

        public void ConfigureServices(IServiceCollection services)
        {
            IServiceCollection serviceCollection = services.AddDbContext<ProdDBContext>(
           options => options.UseSqlServer("Server=DESKTOP-1M2N4KR\\HQ;Database=Rocky;Integrated Security=true;Trusted_Connection=True;TrustServerCertificate=True;"));
        }
    }

}


Error Message 
Unable to create a 'DbContext' of type ''. The exception 'No database provider has been configured for this DbContext. A provider can be configured by overriding the 'DbContext.OnConfiguring' method or by using 'AddDbContext' on the application service provider. If 'AddDbContext' is used, then also ensure that your DbContext type accepts a DbContextOptions<TContext> object in its constructor and passes it to the base constructor for DbContext.' was thrown while attempting to create an instance. For the different patterns supported at design time, see https://go.microsoft.com/fwlink/?linkid=851728

My problem basically is that i can not add migration to the database. I keep getting error message as posted above.I have installed Entityframework core,Entityframework,sql and lastly the Entityframework.Tools.Please help me.


Solution

  • public DbSet<Worker> Workers { get; set; }
        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            if (!optionsBuilder.IsConfigured)
            {
                optionsBuilder.UseSqlServer("Server=DESKTOP-1M2N4KR\\HQ;Database=Rocky;Integrated Security=true; Trusted_Connection=True;TrustServerCertificate=True;");
            }
            base.OnConfiguring(optionsBuilder);
        }
    }