Mac os可以使用Sqlite3数据库,该项目来自官方案例使用新数据库在 ASP.NET Core 上开始使用 EF Core
首先创建一个 项目
创建新项目.net core mvc
-
运行以下命令以创建 MVC 项目:
dotnet new mvc -n EFGetStarted.AspNetCore.NewDb
-
更改为项目目录。 你输入的下一个命令需要针对新项目运行。
cd EFGetStarted.AspNetCore.NewDb
-
在该项目下创建一个数据库
sqlite3 blogging.db
安装 Entity Framework Core
要安装 EF Core,请为要作为目标对象的 EF Core 数据库提供程序安装程序包。
本教程使用 SQLite 的原因是,它可在 .NET Core 支持的所有平台上运行。
-
运行以下命令安装 SQLite 提供程序:
dotnet addpackage Microsoft.EntityFrameworkCore.Sqlite
创建Model
定义构成模型的上下文类和实体类。
-
在 Models 文件夹中,使用以下代码创建 Model.cs:
using Microsoft.EntityFrameworkCore; using System.Collections.Generic; namespace EFGetStarted.AspNetCore.NewDb.Models { public class BloggingContext : DbContext { public BloggingContext(DbContextOptions<BloggingContext> options) : base(options) { } //生成Blogs、和Posts表 public DbSet<Blog> Blogs { get; set; } public DbSet<Post> Posts { get; set; } } public class Blog { public int BlogId { get; set; } public string Url { get; set; } //一对多 public List<Post> 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; } } }
生产应用通常会将每个类放在单独的文件中。 为简单起见,本教程将这些类放在一个文件中。
使用依赖注入注册上下文
服务(例如 BloggingContext
)在应用程序启动期间通过依赖关系注入进行注册。 需要这些服务的组件(如 MVC 控制器)可以通过向构造函数或属性添加相关参数来获得对应服务。
若要使 BloggingContext
对 MVC 控制器可用,请将其注册为服务。
-
在 Startup.cs 中,添加以下
using
语句:using EFGetStarted.AspNetCore.NewDb.Models; using Microsoft.EntityFrameworkCore;
-
将以下突出显示的代码添加到
ConfigureServices
方法:public void ConfigureServices(IServiceCollection services) { services.Configure<CookiePolicyOptions>(options => { // This lambda determines whether user consent for non-essential cookies is needed for a given request. options.CheckConsentNeeded = context => true; options.MinimumSameSitePolicy = SameSiteMode.None; }); services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1); //连接数据库 var connection = "Data Source=blogging.db"; services.AddDbContext<BloggingContext> (options => options.UseSqlite(connection)); // BloggingContext requires // using EFGetStarted.AspNetCore.NewDb.Models; // UseSqlite requires // using Microsoft.EntityFrameworkCore; }
生产应用通常会将连接字符串放在配置文件或环境变量中。
创建数据库
以下步骤使用迁移创建数据库。
-
在终端中运行以下命令:
dotnet ef migrations addInitialCreate dotnet ef database update
migrations
命令为迁移搭建基架,以便为模型创建一组初始表。database update
命令创建数据库并向其应用新的迁移。
创建控制器
生成 Blog
实体控制器和视图的基架。
-
运行以下命令:
dotnet tool install -g dotnet-aspnet-codegenerator dotnet add package Microsoft.VisualStudio.Web.CodeGeneration.Design dotnet restore dotnet aspnet-codegenerator controller -name BlogsController -m Blog -dc BloggingContext --relativeFolderPath Controllers --useDefaultLayout --referenceScriptLibraries
tool install
和add package
命令安装可以为控制器和视图搭建基架的工具。restore
命令可确保下载所有的项目包,aspnet-codegenerator
命令可执行基架搭建。
基架引擎创建以下文件:
- 控制器 (Controllers/BlogsController.cs)
- “创建”、“删除”、“详细信息”、“编辑”和“索引”页面的 Razor 视图 (Views/Blogs/*.cshtml)
运行此应用程序
dotnet run
-
导航到 localhost:5000
/Blogs
-
使用“新建”链接创建一些博客条目。