Mac OS下创建一个EF Core例子

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

  • 使用“新建”链接创建一些博客条目。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值