aggiornamento: 4 novembre 2016.
riformattazione - immagini per esempi di codice.
Info: Tenete presente che in alcuni esempi di codice, il codice che è stato generato dal modello di Visual Studio sono stati omessi.
Aggiornamento: July 11th, 2016.
versione .NET Core e EntityFramework core 1.0 è su di noi!
Quindi questa guida merita un piccolo aggiornamento
Fase 1:
Crea la tua applicazione.
Fase 2:
Ottenere i pacchetti necessari
Microsoft.EntityFrameworkCore 1.0.0
Microsoft.EntityFrameworkCore.SQlite 1.0.0
Fase 3:
Crea il tuo contesto :
(Il contesto sarà una classe creata)
public class DatabaseContext : DbContext
{
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlite("Filename=MyDatabase.db");
}
}
Fase 4:
Aggiungi il tuo contesto ai vostri servizi:
(che si trova nella classe di avvio)
public void ConfigureServices(IServiceCollection services)
{
services.AddEntityFrameworkSqlite().AddDbContext<DatabaseContext>();
}
Fase 5:
creare il database all'avvio, da parte aggiungendolo al metodo di avvio
(Situato nella classe di avvio)
public Startup(IHostingEnvironment env)
{
using(var client = new DatabaseContext())
{
client.Database.EnsureCreated();
}
}
Et Voíla!
Ora sarà possibile utilizzare SQLite nelle applicazioni ASP.NET Core.
La vecchia guida si applica ancora al modo in cui si creano i modelli e si utilizza il contesto del database.
Aggiornamento: May 28th, 2016.
.NET Nucleo RC2 e EntityFramework core RC1 sono stati rilasciati.
Hanno migliorato e semplificato i passaggi per l'impostazione di SQLite.
Ma sto riscontrando qualche problema con esso e non riesco a replicarlo, a causa di un errore con la libreria Newtonsoft.Json e NuGet.
Si consiglia di attenersi alle librerie RC1 se si desidera eseguire questa operazione, per ora!
Fase 1:
Creare l'applicazione web ASP.NET
Fase 2:
Vai su Strumenti -> Nuget Packet Manager -> Gestisci Nuget Pacchetti per soluzione.
Cerca EntityFramework.SQLite
e controlla la casella Include prelease
.
Installare il pacchetto
Fase 3: creazione di un contesto
creare una classe contesto per il database.
Chiamalo come vuoi, ma andiamo con qualcosa di personalizzato, come MyDbContext
. Fai la tua nuova classe eredita la classe DbContext e sovrascrivere il metodo OnConfiguring e utilizzare per la connessione in questo modo:
public class MyDbContext : DbContext
{
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
var connectionStringBuilder = new SqliteConnectionStringBuilder { DataSource = "MyDb.db" };
var connectionString = connectionStringBuilder.ToString();
var connection = new SqliteConnection(connectionString);
optionsBuilder.UseSqlite(connection);
}
}
Fase 4:
Vai alla Startup.cs
e assicurarsi che il database viene creato all'inizio del l'applicazione web:
public Startup(IHostingEnvironment env)
{
// Set up configuration sources.
var builder = new ConfigurationBuilder()
.AddJsonFile("appsettings.json")
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true);
using (var db = new MyDbContext())
{
db.Database.EnsureCreated();
db.Database.Migrate();
}
}
In secondo luogo abbiamo bisogno di aggiungere il servizio:
public void ConfigureServices(IServiceCollection services)
{
// Add framework services.
services.AddMvc();
services.AddEntityFramework()
.AddSqlite()
.AddDbContext<MyDbContext>();
}
Passo 5: Definire i vostri modelli
Crea il tuo modelli e andare a MyDbContext.cs
e aggiungere una nuova proprietà per ognuno dei vostri nuovi modelli (dato che si vuole un tavolo per ciascuno!)
Ecco un esempio:
Il mio modello:
public class Category
{
public int Id { get; set; }
public string Title { get; set; }
public string Description { get; set; }
public string UrlSlug { get; set; }
}
aggiungendolo al mio contesto:
public class MyDbContext : DbContext
{
public DbSet<Category> Categories { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
var connectionStringBuilder = new SqliteConnectionStringBuilder { DataSource = "MyDb.db" };
var connectionString = connectionStringBuilder.ToString();
var connection = new SqliteConnection(connectionString);
optionsBuilder.UseSqlite(connection);
}
}
Fase 6: Uso del contesto
Vai al tuo HomeController e aggiungere un nuovo campo al tuo controller.
private readonly MyDbContext _myDbContext = new MyDbContext();
e utilizzarlo in un ActionResult passandolo alla vista restituita: (Ora lascia supporre che abbiamo una categoria nel nostro database)
public IActionResult Index()
{
var category = _myDbContext.Categories.First();
return View(category);
}
Così andando alla visualizzazione indice, è può usare i nostri dati immaginari dal database. Con la definizione di un modello nella parte superiore della visualizzazione in questo modo:
@model MyNameSpace.Models.Category
@{
ViewData["Title"] = "Hey Ho! SO!";
}
<div class="page-header">
<h1>@ViewData["Title"]</h1>
</div>
<div class="container">
@Model.Title
</div>
Ora avviando la nostra applicazione web e andare in indirizzo assegnato dovremmo vedere una pagina HTML di default con un colpo di testa di bootstrap di fantasia, che mostra questo nella pagina :
La seconda riga è (o sarebbe) il titolo della nostra prima categoria nel nostro database.
Entity Framework 7 Docs
Questo è il mio primo Q & A - se avete qualsiasi ingresso o qualcosa che ha bisogno di chiarire, non esitate a commentare.
Questo è un esempio molto semplice di come implementare un database SQLite in un'applicazione Web ASP.NET Core MVC.
Do atto che c'è diversi modi per impostare la stringa di connessione per il database, come utilizzare il contesto e che EntityFramework 7 è ancora una prerelease
Il quadro specificato 'Microsoft.NETCore.App', versione '1.1.0' non è stato trovato. Così ora ha bisogno di 1.1.0 - il generatore di yog aspnet rompe la compatibilità con la v 1.0.1 .. – hB0
Se hai intenzione di usare Visual Studio con Yeoman, hai 2 scelte: 1) [scarica .NET Core 1.1 SDK ] (https://www.microsoft.com/net/core#windowscmd) e [aggiorna NuGet a Beta] (http://docs.nuget.org/ndocs/guides/install-nuget#nuget-beta-channel) . 2) Modificare manualmente 'package.json' e modificare" 1.1.0-preview4-final "in" 1.0.0-preview2-003131 "(e anche modificare" 1.1.0 "in" 1.0.1 ". 'global.json', assicurati che sdk.version sia ancora" 1.0.0-preview2-003131 "a prescindere da ciò che stai scegliendo.MS si sta sbarazzando di' package.json' in favore di '.csproj' quindi è necessario riconoscere 'package.json' – kimbaudi