• Entity Framework Core系列教程-5-第一个应用程序


    第一个EF Core控制台应用程序

    在这里,您将逐步学习如何将Entity Framework Core与Code-First方法结合使用。为了演示这一点,我们将使用Visual Studio 2019创建一个.NET Core Console应用程序。
    可以使用Visual Studio 2019或.NET Core的命令行界面(CLI)创建.NET Core控制台应用程序。在这里,我们将使用Visual Studio 2019。
    要创建.NET Core控制台应用程序,请打开Visual Studio 2019,然后在菜单上选择:文件->新建->项目。这将打开“新建项目”弹出窗口,如下所示。
    在“新建项目”弹出窗口中,在左窗格中展开Installed-> Visual C#,然后在中间窗格中选择Console App(.NET Core)模板。输入项目名称和位置,然后单击确定按钮以创建控制台应用程序,如下所示。
    现在,我们需要使用Package Manager Console在我们的控制台应用程序中安装EF Core。在菜单上选择:工具-> NuGet程序包管理器->程序包管理器控制台,并执行以下命令来安装SQL Server提供程序程序包:

    Install-Package Microsoft.EntityFrameworkCore.SqlServer
    

    如何安装请参考:
    EF Core安装教程

    创建模型

    EF Core需要具有一个模型(实体数据模型)以与基础数据库进行通信。它根据您的领域模型类成员,数据注释和Fluent API配置来构建模型。
    EF模型包括三个部分:概念模型,存储模型以及概念模型和存储模型之间的映射。在Code-First方法中,EF根据您的领域类(实体类),上下文类和配置来构建概念模型。 EF Core根据您使用的提供程序构建存储模型和映射。例如,与DB2相比,SQL Server的存储模型将有所不同。
    EF使用此模型对基础数据库进行CRUD(创建,读取,更新,删除)操作。
    因此,我们需要首先创建实体类和上下文类。以下是学生和课程的简单实体类:

    public class Student
    {
        public int StudentId { get; set; }
        public string Name { get; set; }
    }
    
    public class Course
    {
        public int CourseId { get; set; }
        public string CourseName { get; set; }
    }
    

    现在,我们需要通过派生DbContext来创建上下文类,如上一章所示。以下SchoolContext类也称为上下文类。

    namespace EFCoreTutorials
    {
        public class SchoolContext : DbContext
        {
            public DbSet<Student> Students { get; set; }
            public DbSet<Course> Courses { get; set; }
    
            protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
            { 
                optionsBuilder.UseSqlServer(@"Server=.SQLEXPRESS;Database=SchoolDB;Trusted_Connection=True;");
            }
        }
    }
    

    上面的上下文类包括两个DbSet <TEntity>属性,分别用于“学生”和“课程”类型,这些属性将映射到基础数据库中的“学生”和“课程”表。在OnConfiguring()方法中,DbContextOptionsBuilder的实例用于指定要使用的数据库。我们已经安装了MS SQL Server提供程序,该提供程序已在DbContextOptionsBuilder上添加了扩展方法UseSqlServer。
    连接字符串"Server=.SQLEXPRESS;Database=SchoolDB;Trusted_Connection=True;"UseSqlServer方法中的提供数据库信息:Server =指定要使用的DB Server,Database =指定要创建的数据库的名称,Trusted_Connection = True指定Windows身份验证模式。运行迁移时,EF Core将使用此连接字符串创建数据库。
    创建上下文和实体类之后,该添加迁移以创建数据库了。

    添加迁移

    EF Core包含不同的迁移命令,用于基于模型创建或更新数据库。此时,尚无SchoolDB数据库。因此,我们需要通过添加迁移从模型(实体和上下文)创建数据库。
    我们可以使用NuGet软件包管理器控制台以及dotnet CLI(命令行界面)执行迁移命令。

    在Visual Studio中,从工具-> NuGet软件包管理器->软件包管理器控制台中打开NuGet软件包管理器控制台,然后输入以下命令:

    add-migration CreateSchoolDB
    

    如果使用dotnet CLI,请输入以下命令:

    dotnet ef migrations add CreateSchoolDB
    

    这将在项目中创建一个名为Migrations的新文件夹,并创建ModelSnapshot文件,如下所示:
    在“迁移”一章中了解有关它的更多信息。
    创建迁移后,我们仍然需要使用Package Manager控制台中的update-database命令创建数据库,如下所示。

    update-database –verbose
    

    在dotnet CLI中输入以下命令:

    dotnet ef database update
    

    这将使用UseSqlServer()方法中的连接字符串中指定的名称和位置创建数据库。它将为每个DbSet属性(学生和课程)创建一个表,如下所示。

    这是第一次创建数据库的迁移。现在,无论何时添加或更新域类或配置,我们都需要使用add-migration和update-database命令将数据库与模型同步。

    读取或写入数据

    现在,我们可以使用上下文类来保存和检索数据,如下所示:

    namespace EFCoreTutorials
    {
        class Program
        {
            static void Main(string[] args)
            {
                using (var context = new SchoolContext()) {
    
                    var std = new Student()
                    {
                         Name = "Bill"
                    };
    
                    context.Students.Add(std);
                    context.SaveChanges();
                }
            }
        }
    }
    

    总结:您需要执行以上步骤才能在应用程序中使用Entity Framework Core。请访问“保存数据和查询”一章,以了解有关在EF Core中保存和检索数据的更多信息。

  • 相关阅读:
    gRPC错误码 http状态码 provide your APIs in both gRPC and RESTful style at the same time
    rust
    lz4 1
    剖析美团内部所采用的网站压力测试方案
    【NOIP2002提高组T4】矩形覆盖-DFS剪枝
    【NOIP2002提高组T4】矩形覆盖-DFS剪枝
    【POJ2777】Count Color-线段树区间更新
    【POJ2777】Count Color-线段树区间更新
    【NOIP2005提高组T3】篝火晚会-置换群
    【NOIP2005提高组T3】篝火晚会-置换群
  • 原文地址:https://www.cnblogs.com/AlexanderZhao/p/12274886.html
Copyright © 2020-2023  润新知