ASP.NET vNext EF7 dbContext problemer

stemmer
1

Jeg begynner en vNext prosjekt, og jeg har noen problemer sparker den av bakken. Jeg har lagt til et bord til ApplicationDbContextklassen, og det opprettet tabellen i db (som i mitt tilfelle er i Azure). Men jeg kan ikke synes å riktig instantiate en dbContextå bruke i mine Controllers.

I min erfaring med tidligere ASP.NET EF prosjekter, kunne jeg instantiate ApplicationDbContext klassen uten å passere det noen parametre, men i tilfelle av vNext men det ser ut til å forvente en rekke ting ( IServiceProviderog IOptionsAccessor<DbContextOptions>). Jeg har prøvd å lage en parameter mindre konstruktør, men App bryter grunn til ikke å vite hva tilkoblings strenger å bruke. Koden min er under - som du ser i OnConfiguring(DbContextOptions options)overstyring, tvinger jeg tilkoblingsstrengen inn via DbContextOptions, men det er åpenbart ikke ideelt, og jeg føler at jeg bare ikke forstå hvor de to IServiceProvider, og IOptionsAccessor parametere trenger å komme fra.

Takk for hjelp!

namespace Project.Models
{
    // Add profile data for application users by adding properties to the ApplicationUser class
    public class ApplicationUser : IdentityUser
    {
        public string CompanyName { get; set; }
    }

    public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
    {
        private static bool _created = false;

        public DbSet<Business> Businesses { get; set; }

        public ApplicationDbContext()
            : base()
        {
            if (!_created)
            {
                Database.EnsureCreated();
                _created = true;
            }
        }

        protected override void OnConfiguring(DbContextOptions options)
        {
            var configuration = new Configuration();
            configuration.AddJsonFile(config.json);
            configuration.AddEnvironmentVariables();
            options.UseSqlServer(configuration.Get(Data:DefaultConnection:ConnectionString));
        }

        public ApplicationDbContext(IServiceProvider serviceProvider, IOptionsAccessor<DbContextOptions> optionsAccessor)
            : base(serviceProvider, optionsAccessor.Options)
        {            
            // Create the database and schema if it doesn't exist
            // This is a temporary workaround to create database until Entity Framework database migrations 
            // are supported in ASP.NET vNext
            if (!_created)
            {
                Database.EnsureCreated();
                _created = true;
            }
        }
    }
}
Publisert på 27/11/2014 klokken 05:59
kilden bruker
På andre språk...                            


1 svar

stemmer
1

IServiveProvider og IOptionAccessor injiseres ved Dependency Injection den ASP.Net Core-DI har begrensninger, kan du ikke ha mer enn en konstruktør.

Les dette: http://blogs.msdn.com/b/webdev/archive/2014/06/17/dependency-injection-in-asp-net-vnext.aspx

Svarte 29/12/2014 kl. 00:06
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more