作者:qaqa | 来源:互联网 | 2024-11-28 11:01
本文介绍如何利用VisualStudio2019和Windows10环境,通过EntityFrameworkCore(EFCore)实现对SQLite数据库的读写操作。项目源代码可从百度网盘下载。
本文档基于Visual Studio 2019和Windows 10操作系统,指导开发者如何使用Entity Framework Core (EF Core) 在.NET Core控制台应用程序中实现SQLite数据库的读写功能。项目完整代码已上传至百度网盘,下载链接:点击下载,提取码:6a2l。
首先,创建一个新的.NET Core控制台应用程序,命名为ConsoleApp1。接着,通过NuGet包管理器安装必要的依赖包,包括:Microsoft.EntityFrameworkCore.Sqlite
、Microsoft.EntityFrameworkCore.Design
、Microsoft.EntityFrameworkCore.Tools
、Microsoft.Extensions.Configuration
和 Microsoft.Extensions.Configuration.Json
。对于ASP.NET Core 2.1及更高版本,Microsoft.EntityFrameworkCore.Tools
已包含在 Microsoft.AspNetCore.App
元包中,而2.1之前的版本则需单独添加。
配置文件设置
在项目根目录下创建一个名为 appsettings.json
的配置文件,用于定义数据库连接字符串等信息。示例如下:
{
"ConnectionStrings": {
"db": "Data Source=./db/blogging.db"
}
}
确保将此文件的“复制到输出目录”属性设置为“如果较新则复制”,以便在编译时自动更新到输出目录。
定义数据模型
在项目中创建一个名为Models的新文件夹,并在其中定义两个实体类 Blog.cs
和 Post.cs
,以及一个继承自 DbContext
的上下文类 BloggingContext.cs
。这些类将映射到数据库中的表结构。
public class Blog {
public int BlogId { get; set; }
public string Url { get; set; }
public ICollection Posts { get; set; }
}
public class Post {
public int PostId { get; set; }
public string Title { get; set; }
public string Content { get; set; }
public int BlogId { get; set; }
public Blog Blog { get; set; }
}
public class BloggingContext : DbContext {
public DbSet Blogs { get; set; }
public DbSet Posts { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) {
var builder = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);
var cOnfig= builder.Build();
optionsBuilder.UseSqlite(config.GetConnectionString("db"));
}
}
初始化数据库
为了创建数据库及其结构,需要执行迁移操作。首先,在项目根目录下创建一个名为db的文件夹,然后打开程序包管理控制台并运行以下命令:
Add-Migration InitialCreate
Update-Database
这将根据定义的数据模型生成数据库文件 blogging.db
。同样地,将此文件的“复制到输出目录”属性设置为“如果较新则复制”。
测试数据库操作
最后,打开 Program.cs
文件,编写代码以测试数据库的增删查改功能。例如,添加一条新的博客记录,并从数据库中查询所有博客记录,显示在控制台窗口中。
static void Main(string[] args) {
using (var db = new BloggingContext()) {
db.Blogs.Add(new Blog { Url = "https://example.com" });
var count = db.SaveChanges();
Console.WriteLine($"{count} records saved to database");
Console.WriteLine("\nAll blogs in database:");
foreach (var blog in db.Blogs) {
Console.WriteLine(" - {0}", blog.Url);
}
Console.ReadKey();
}
}
运行程序,你将在控制台看到新添加的博客记录以及数据库中所有博客记录的URL。