EF7 Beta 4: AddEntityFramework non accetta argomenti (configurazione)

asp.net-core entity-framework-core

Domanda

Sto esaminando questo esempio: http://stephenwalther.com/archive/2015/01/17/asp-net-5-and-angularjs-part-4-using-entity-framework-7

e sto lottando con questa parte di codice:

using Microsoft.AspNet.Builder;
using Microsoft.Framework.DependencyInjection;
using Microsoft.Data.Entity;
using creaservo.com.Models;
using Microsoft.Framework.ConfigurationModel;
using Microsoft.AspNet.Hosting;

namespace creaservo.com
{
    public class Startup
    {
        public Startup(IHostingEnvironment env)
        {
            // Setup configuration sources.
            Configuration = new Configuration()
                .AddJsonFile("config.json")
                .AddEnvironmentVariables();
        }

        public IConfiguration Configuration { get; set; }


        public void ConfigureServices(IServiceCollection services)
        {
            services.AddMvc();

            // Register Entity Framework
            services.AddEntityFramework(Configuration)
                .AddSqlServer()
                .AddDbContext<MoviesAppContext>();
        }

        public void Configure(IApplicationBuilder app)
        {
            app.UseMvc();
        }
    }
}

Il problema è con

        // Register Entity Framework
        services.AddEntityFramework(Configuration)
            .AddSqlServer()
            .AddDbContext<MoviesAppContext>();

dove ottengo un errore di compilazione:

Error   CS1501  No overload for method 'AddEntityFramework' takes 1 arguments   

Ho visto in molti altri esempi lo stesso uso di un argomento per Configuration.

Non ho idea, cosa c'è che non va ....

Risposta accettata

Sembra che il tutorial che stai seguendo utilizzi una versione precedente del framework EF7. EntityFramework 7 beta 4 non accetta più alcun parametro su AddEntityFramework . Sembra che la beta 5 sia ancora su questa stessa traccia.

Credo che quello che stai cercando sia questo:

// Register Entity Framework
services.AddEntityFramework()
    .AddSqlServer()
    .AddDbContext<MoviesAppContext>(options =>
    {
        options.UseSqlServer(Configuration.Get("Data:DefaultConnection:ConnectionString"));
    });

Ciò semplifica la struttura di cui hai bisogno nel file di configurazione, poiché MoviesAppContext richiede solo la stringa di connessione, non gli elementi EntityFramework e Data .




Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché