Ответ 1
Обновление: 4 ноября 2016 года.
Переформатирование - картинки для примеров кода.
Info:
Имейте в виду, что в некоторых примерах кода код, созданный шаблоном визуальной студии, был опущен.
Обновление: 11 июля 2016 года.
.NET Core и EntityFrameWork Core версии 1.0 на нас!
Так что это руководство заслуживает небольшого обновления
Шаг 1:
Создайте свое приложение.
Шаг 2:
Получить необходимые пакеты
Microsoft.EntityFrameworkCore 1.0.0
Microsoft.EntityFrameworkCore.SQlite 1.0.0
Шаг 3:
Создайте свой контекст:
(Контекст будет классом, который вы создаете)
public class DatabaseContext : DbContext
{
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlite("Filename=MyDatabase.db");
}
}
Шаг 4:
Добавьте свой контекст в свои службы:
(Находится в вашем классе Startup)
public void ConfigureServices(IServiceCollection services)
{
services.AddEntityFrameworkSqlite().AddDbContext<DatabaseContext>();
}
Шаг 5:
Создайте свою базу данных при запуске, добавив ее в метод запуска
(Находится в классе Startup)
public Startup(IHostingEnvironment env)
{
using(var client = new DatabaseContext())
{
client.Database.EnsureCreated();
}
}
Эт Войла!
Теперь вы сможете использовать SQLite в своих основных приложениях ASP.NET.
Старое руководство по-прежнему применяется в отношении того, как вы создаете свои модели, а также используете контекст базы данных.
Обновление: 28 мая 2016 года.
Выпущен .NET Core RC2 и EntityFramework Core RC1.
Они улучшили и упростили шаги по настройке SQLite.
Но я испытываю некоторые проблемы с этим и не могу реплицировать его из-за ошибки с библиотекой Newtonsoft.Json и NuGet.
Я рекомендую придерживаться библиотек RC1, если вы хотите сделать это, пока!
Шаг 1:
Создайте веб-приложение ASP.NET
Шаг 2:
Перейдите в Инструменты → Nuget Packet Manager → Управление пакетами Nuget для решения.
Найдите EntityFramework.SQLite
и установите флажок Include prelease
.
Установите пакет
Шаг 3: Создание контекста
Создайте класс контекста для своей базы данных.
Назовите это, как хотите, но отпустите что-то, что обычно, например MyDbContext
.
Сделайте свой новый класс наследующим классом DbContext и переопределите метод OnConfiguring и определите свое соединение следующим образом:
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);
}
}
Шаг 4:
Перейдите к Startup.cs
и убедитесь, что ваша база данных создана в начале вашего веб-приложения:
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();
}
}
Во-вторых, нам нужно добавить службу:
public void ConfigureServices(IServiceCollection services)
{
// Add framework services.
services.AddMvc();
services.AddEntityFramework()
.AddSqlite()
.AddDbContext<MyDbContext>();
}
Шаг 5: Определение ваших моделей
Создайте свои модели и перейдите в MyDbContext.cs
и добавьте новое свойство для каждой из ваших новых моделей (учитывая, что вам нужна таблица для каждого!)
Вот пример:
Моя модель:
public class Category
{
public int Id { get; set; }
public string Title { get; set; }
public string Description { get; set; }
public string UrlSlug { get; set; }
}
Добавление его в мой контекст:
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);
}
}
Шаг 6: Использование контекста
Перейдите в свой HomeController и добавьте новое поле в контроллер. private readonly MyDbContext _myDbContext = new MyDbContext();
И используйте его в ActionResult, передав его возвращенному представлению:
(Теперь предположим, что у нас есть категория в нашей базе данных)
public IActionResult Index()
{
var category = _myDbContext.Categories.First();
return View(category);
}
Итак, перейдя на ваш индекс, вы можете использовать наши мнимые данные из базы данных. Определив модель в верхней части вашего представления так:
@model MyNameSpace.Models.Category
@{
ViewData["Title"] = "Hey Ho! SO!";
}
<div class="page-header">
<h1>@ViewData["Title"]</h1>
</div>
<div class="container">
@Model.Title
</div>
Теперь, запустив наше веб-приложение и перейдем к назначенному адресу, мы увидим страницу html по умолчанию с фэнтезийным заголовком начальной загрузки, показывая это на странице:
Вторая строка - это (или будет) название нашей первой категории в нашей базе данных.
Документация Entity Framework 7
Это мой первый Q & A - если у вас есть какой-либо ввод или что-то, что нужно уточнить, не стесняйтесь комментировать.
Это очень простой пример того, как реализовать базу данных SQLite в веб-приложении ASP.NET Core MVC.
Обратите внимание, что существует несколько способов установить строку подключения для базы данных, как использовать контекст и что EntityFramework 7 все еще является предварительным предложением