更新:2016 年 11 月 4 日。
重新格式化 - 图片到代码示例。
信息:
请记住,在某些代码示例中,由 Visual Studio 模板生成的代码已被省略。
更新:2016 年 7 月 11 日。
.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();
}
}
瞧瞧!
现在您将能够在 ASP.NET Core 应用程序中使用 SQLite。
旧指南仍然适用于如何创建模型以及使用数据库上下文。
更新:2016 年 5 月 28 日。
.NET Core RC2 和 EntityFramework Core RC1 已经发布。
他们改进并简化了设置 SQLite 的步骤。
但是由于 Newtonsoft.Json 库和 NuGet 出现错误,我遇到了一些问题并且无法复制它。
如果您想这样做,我建议您暂时坚持使用 RC1 库!
第 1 步:
创建您的 ASP.NET Web 应用程序
第 2 步:
转到工具 -> Nuget 包管理器 -> 管理 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>
现在,通过启动我们的 Web 应用程序并转到分配的地址,我们应该会看到一个带有精美引导标头的默认 html 页面,并在页面上显示:
第二行是(或将是)我们数据库中第一个类别的标题。
Entity Framework 7 Docs
这是我的第一次问答 - 如果您有任何意见或需要澄清的内容,请随时发表评论。
这是一个非常基本的示例,说明如何将 SQLite 数据库实现到 ASP.NET Core MVC Web 应用程序中。
请注意,有几种方法可以设置数据库的连接字符串、如何使用上下文以及 EntityFramework 7 仍然是预发布版