zmiana: Listopad 4th, 2016
Ponowne - zdjęcia do przykładów kodu.
Info: Należy pamiętać, że w niektórych przykładach kodu pominięto kod wygenerowany przez szablon Visual Studio.
Aktualizacja: 11 lipca 2016 r
wersja .NET Rdzeń Rdzeń i EntityFrameWork 1.0 jest na nas!
Więc to przypomnienie zasługuje na odrobinę Aktualizacja
Krok 1:
Tworzenie aplikacji.
Krok 2:
uzyskać niezbędne pakiety
Microsoft.EntityFrameworkCore 1.0.0
Microsoft.EntityFrameworkCore.SQlite 1.0.0
Krok 3:
Stwórz swój kontekst :
(Kontekst będzie klasą, którą utworzysz)
public class DatabaseContext : DbContext
{
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlite("Filename=MyDatabase.db");
}
}
Krok 4:
Dodaj swój kontekst do swoich usług:
(znajduje się w swojej klasie startowego)
public void ConfigureServices(IServiceCollection services)
{
services.AddEntityFrameworkSqlite().AddDbContext<DatabaseContext>();
}
Krok 5:
Tworzenie bazy danych przy starcie, przez dodanie go do metody uruchamiania
(Znajduje się w klasie startowej)
public Startup(IHostingEnvironment env)
{
using(var client = new DatabaseContext())
{
client.Database.EnsureCreated();
}
}
Et Voíla!
Teraz będziesz mógł używać SQLite w swoich aplikacjach ASP.NET Core.
Stary przewodnik nadal dotyczy sposobu tworzenia modeli, jak również kontekstu bazy danych.
Aktualizacja: 28 maja 2016 r
NET Rdzeń Rdzeń RC2 i EntityFramework RC1 zostały zwolnione.
Ulepszyły one i uprościły procedurę konfigurowania SQLite.
Ale mam pewne problemy z tym i nie mogę go replikować z powodu błędu w bibliotece Newtonsoft.Json i NuGet.
Polecam trzymać się bibliotek RC1, jeśli chcesz to zrobić, na razie!
Krok 1:
Tworzenie aplikacji internetowych ASP.NET
Krok 2:
przejdź do Narzędzia -> Nuget Packet Manager -> Zarządzaj Nuget Pakiety dla rozwiązania.
Wyszukaj EntityFramework.SQLite
i zaznacz pole Include prelease
.
Zainstaluj pakiet
Krok 3: Tworzenie kontekstu
utworzyć klasę kontekstowe dla bazy danych.
Nazwij to, co chcesz, ale chodźmy z czymś, co jest zwyczajowe, jak MyDbContext
. Dodać nowa klasa dziedziczy klasę DbContext i zastąpić metodę OnConfiguring i określenia sposobu połączenia tak:
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);
}
}
Krok 4:
Przejdź do Startup.cs
i upewnić się, że baza danych jest tworzona na początku aplikacja internetowa:
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();
}
}
drugie musimy dodać usługę:
public void ConfigureServices(IServiceCollection services)
{
// Add framework services.
services.AddMvc();
services.AddEntityFramework()
.AddSqlite()
.AddDbContext<MyDbContext>();
}
Krok 5: Definiowanie modeli
Załóż swoje modele i przejdź do MyDbContext.cs
i dodaj nową właściwość dla każdego z nowych modeli (zważywszy, że chcesz mieć stolik dla każdego!)
Oto przykład:
Moja Model:
public class Category
{
public int Id { get; set; }
public string Title { get; set; }
public string Description { get; set; }
public string UrlSlug { get; set; }
}
dodanie go do mojego kontekstu:
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);
}
}
Krok 6: Korzystanie z kontekstu
idź do HomeController i dodaj nowe pole do kontrolera.
private readonly MyDbContext _myDbContext = new MyDbContext();
i używać go w ActionResult, przekazując je do zwracanego widzenia: (Teraz Załóżmy mamy kategorię w naszej bazie danych)
public IActionResult Index()
{
var category = _myDbContext.Categories.First();
return View(category);
}
Więc przechodząc do widoku indeksu, ty może wykorzystywać nasze wyobrażone dane z bazy danych. Poprzez zdefiniowanie modelu w górnej części widoku tak:
@model MyNameSpace.Models.Category
@{
ViewData["Title"] = "Hey Ho! SO!";
}
<div class="page-header">
<h1>@ViewData["Title"]</h1>
</div>
<div class="container">
@Model.Title
</div>
Teraz zaczynając naszą aplikację internetową i przechodząc do przypisanym adresem powinniśmy zobaczyć domyślną stronę HTML z fantazyjny nagłówku bootstrap, pokazując to na stronie :
Druga linia to (lub będzie) tytuł naszej pierwszej kategorii w naszej bazie danych.
Entity Framework 7 Docs
To moja pierwsza Q & A - jeśli masz jakiekolwiek wejście lub coś, co wymaga wyjaśnienia, nie wahaj się wypowiedzieć.
To jest bardzo prosty przykład, jak zaimplementować bazę danych SQLite w aplikacji sieci web MVC ASP.NET Core.
Należy pamiętać, że istnieje kilka sposobów, aby ustawić parametry połączenia do bazy danych, jak korzystać z kontekstu i że EntityFramework 7 jest nadal prerelease
Podany ramową „Microsoft.NETCore.App”, wersja „1.1.0” nie została znaleziona. Teraz potrzebuje 1.1.0 - generator yo aspnet łamie wsteczną zgodność z wersją 1.0.1 .. – hB0
Jeśli zamierzasz używać Visual Studio z Yeomanem, masz 2 opcje: 1) [pobierz .NET Core 1.1 SDK ] (https://www.microsoft.com/net/core#windowscmd) i [zaktualizuj NuGet do wersji beta] (http://docs.nuget.org/ndocs/guides/install-nuget#nuget-beta-channel) . 2) Ręcznie edytuj 'pakiet.json' i zmień" 1.1.0-preview4-final "na" 1.0.0-preview2-003131 "(a także zmień" 1.1.0 "na" 1.0.1 "). 'global.json', upewnij się, że sdk.version jest nadal" 1.0.0-preview2-003131 ", niezależnie od tego, jaki wybierzesz.MS usunie' pakiet.json' na rzecz '.csproj', więc jest to konieczne do rozpoznania 'pakiet.json' – kimbaudi