.NET Core 控制台 EF
简介
Entity Framework(EF)是一个开源的对象关系映射(ORM)框架,用于将数据库中的数据映射到.NET应用程序中的对象模型中。.NET Core是一个跨平台的开源框架,可以运行在Windows、Mac和Linux等操作系统上。本文将介绍如何在.NET Core控制台应用程序中使用EF来访问和操作数据库。
建立项目
首先,我们需要在.NET Core控制台应用程序中添加EF的依赖项。打开终端或命令提示符,导航到项目目录,然后运行以下命令:
dotnet add package Microsoft.EntityFrameworkCore
dotnet add package Microsoft.EntityFrameworkCore.Design
dotnet add package Microsoft.EntityFrameworkCore.SqlServer
这将向项目添加必要的EF相关包。
创建数据模型
在使用EF之前,我们需要定义数据模型来描述数据库中的表和实体之间的关系。在控制台应用程序的根目录中创建一个名为Models
的文件夹,并在其中创建一个名为Blog.cs
的文件。在Blog.cs
中,添加以下代码:
public class Blog
{
public int Id { get; set; }
public string Title { get; set; }
public string Content { get; set; }
}
这个模型表示一个名为Blog
的实体,有一个整型的Id
属性和两个字符串类型的Title
和Content
属性。
建立数据库上下文
数据库上下文是EF中的核心组件,用于连接数据库并执行操作。在Models
文件夹中创建一个名为BlogContext.cs
的文件,并添加以下代码:
using Microsoft.EntityFrameworkCore;
public class BlogContext : DbContext
{
public DbSet<Blog> Blogs { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer("your_connection_string");
}
}
在上面的代码中,我们定义了一个名为BlogContext
的派生自DbContext
的类,并在其中添加了一个DbSet<Blog>
属性用于表示数据库中的Blogs
表。OnConfiguring
方法用于配置数据库连接字符串,你需要将your_connection_string
替换为你的实际数据库连接字符串。
数据库迁移
EF提供了数据库迁移机制,可以在代码中进行数据库结构的版本控制和迁移。在终端或命令提示符中运行以下命令来创建迁移:
dotnet ef migrations add InitialCreate
这将创建一个名为InitialCreate
的迁移。
然后运行以下命令来应用迁移并创建数据库:
dotnet ef database update
这将根据迁移文件创建数据库。
使用数据库
现在我们已经建立了数据模型和数据库上下文,并且创建了数据库,我们可以在控制台应用程序中使用数据库了。打开Program.cs
文件,并添加以下代码:
using System;
class Program
{
static void Main(string[] args)
{
using (var context = new BlogContext())
{
var blog = new Blog { Title = "Hello World", Content = "This is my first blog post!" };
context.Blogs.Add(blog);
context.SaveChanges();
var blogs = context.Blogs;
foreach (var b in blogs)
{
Console.WriteLine($"Title: {b.Title}, Content: {b.Content}");
}
}
}
}
在上面的代码中,我们创建了一个Blog
对象,并将其添加到数据库中。然后,我们从数据库中获取所有的博客,并在控制台上打印出它们的标题和内容。
运行应用程序,你将看到数据库中的博客被打印出来。
结论
通过使用.NET Core控制台应用程序和EF,我们可以方便地访问和操作数据库。在本文中,我们介绍了如何使用EF来创建数据模型、数据库上下文,以及如何进行数据库迁移和使用数据库。希望这篇文章对你理解和使用.NET Core控制台 EF有所帮助。