基于 ASP.NET Core 的 EF Core 入门

在本教程中,将使用 Entity Framework Core 构建执行基本数据访问的 ASP.NET Core MVC 应用程序。

创建新项目

  • 打开 Visual Studio 2017

  • “文件”>“新建”>“项目”

  • 从左菜单中选择“已安装”>“Visual C#”>“.NET Core”。

  • 选择“ASP.NET Core Web 应用程序”。

  • 输入“WebApplication”作为名称,然后单击“确定”。

  • 在“新建 ASP.NET Core Web 应用程序”对话框中:

  • 确保在下拉列表中选择“.NET Core”和“ASP.NET Core 2.1”

  • 选择“Web 应用程序(模型视图控制器)”项目模板

  • 确保将“身份验证”设置为“无身份验证”

  • 单击“确定”              

     

安装 Entity Framework Core

对于本教程,无需安装提供程序包,因为本教程使用 SQL Server。 SQL Server 提供程序包包含在 Microsoft.AspnetCore.App 元包中。

创建模型

  • 右键单击“Models”文件夹,然后选择“添加”>“类”。

  • 输入“Model.cs”作为名称,然后单击“确定”。

  • 将此文件的内容替换为以下代码:

using System.Collections.Generic;
using Microsoft.EntityFrameworkCore;
namespace WebApplication.Models { public class BloggingContext : DbContext { public BloggingContext(DbContextOptions<BloggingContext> options) : base(options) { } 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 ICollection<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 控制器,请在 Startup.cs 中将其注册为服务。

在应用程序启动过程中,通过依赖关系注入 注册服务(如 BloggingContext),以便能够通过构造函数的参数和属性向使用服务的组件(如 MVC 控制器)自动提供该服务。

  • 在 Startup.cs 中,添加以下 using 语句:
using WebApplication.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 = @"Server=你的数据库地址;Database=WebApplication;User Id=你的数据库账号;Password=你的数据库密码;"; // 手动高亮
        services.AddDbContext<BloggingContext> // 手动高亮
            (options => options.UseSqlServer(connection)); // 手动高亮
    }

生产应用通常会将连接字符串放在配置文件或环境变量中。 为简单起见,本教程在代码中定义它。

创建数据库

以下步骤使用迁移创建数据库。

  • “工具”>“NuGet 包管理器”>“包管理器控制台”

  • 运行以下命令:

Add-Migration InitialCreate
Update-Database

如果收到错误,指出 The term 'add-migration' is not recognized as the name of a cmdlet,请关闭并重新打开 Visual Studio。

Add-Migration 命令为迁移搭建基架,以便为模型创建一组初始表。 Update-Database 命令创建数据库并向其应用新的迁移。

创建控制器

生成 Blog 实体控制器和视图的基架。

  • 在“解决方案资源管理器”中,右键单击“Controllers”文件夹,然后选择“添加”>“控制器”。

  • 选择“视图使用 Entity Framework 的 MVC 控制器”,然后单击“添加”。

  • 将“模型类”设置为“Blog”,将“数据上下文类”设置为“BloggingContext”。

  • 单击 添加。

运行此应用程序

    • 调试 > 开始执行(不调试)
    • 导航到 /Blogs

 

posted @ 2020-07-30 09:16  进步者One  阅读(441)  评论(0编辑  收藏  举报