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中保存和检索数据的更多信息。

posted @ 2020-02-07 21:18  星空天宇  阅读(160)  评论(0编辑  收藏  举报