Sto cercando di aggiungere Entity Framework Core 1.1 al mio progetto e utilizzare una connessione String per ottenere i miei dati da un database di Azure. Ho provato a leggere le modifiche su https://blogs.msdn.microsoft.com/dotnet/2016/11/16/announcing-entity-framework-core-1-1/ dove dicono, che dovrei farlo nel mio avvio File .cs per connettersi al DB:
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder
.UseSqlServer(
"connection string",
options => options.EnableRetryOnFailure());
}
Ma mi dà solo un errore:
Non è stato possibile trovare il tipo o lo spazio dei nomi 'DbContextOptionsBuilder' ...
e
'Startup.OnConfiguring (DbContextOptionsBuilder): non è stato trovato alcun metodo adatto a eseguire l'override.
Posso aggiungere usando Microsoft.EntityFrameworkCore; che farà scomparire l'errore con DbContextOptionsBuilder, ma poi .SseSqlServer riceve un errore:
'DbContextOptionsBuilder' non contiene una definizione per 'UseSqlServer' e nessun metodo di estensione ...
Questo è il mio file dotnet.csproj
Come risolvere questo problema, quindi posso connettermi al mio Db su Azure e ottenere i dati?
Grazie in anticipo!
Il post del blog a cui ti riferisci potrebbe essere un po 'confuso. Stanno parlando del metodo OnConfiguring del tuo DbContext o di qualche posto nella tua Startup. Il tuo esempio sta mixando entrambi i mondi (ti aspetti che il metodo OnConfiguring di DbContext sia in Avvio).
Per prima cosa aggiungi il pacchetto Microsoft.EntityFrameworkCore.SqlServer .
Diciamo che vuoi usare Startup.cs, sarà simile a questo:
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<YourDbContext>(options =>
{
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"));
});
}
È possibile definire la stringa di connessione in appsettings.json:
{
"ConnectionStrings": {
"DefaultConnection": "Data Source=.;Database=<your db>;User Id=;Password="
}
}