实体框架核心

嗨,朋友们。在这个美好的五月天,我们将继续努力,今天我们要谈论的事实是,OTUS在五月推出了每个人都喜欢的“ C#开发人员”课程,以及单独的C#ASP课程NET核心传统上,在课程开始前夕,我们开始发布有用的材料。走。




介绍


大多数现代的ASP NET Core应用程序都使用Entity Framework Core。实体框架核心是一项用于从Microsoft访问数据库的技术。它允许您使用实体(即类和NET对象)而非数据库表与DBMS进行交互。这是C#中最著名和功能最强大的ORM工具。ORM是一种对象关系映射-将数据映射到真实对象。

例如,如果开发人员直接使用数据库,则程序员应考虑连接,准备SQL和SQL参数,如何发送查询和事务。在Entity Framework Core的帮助下,所有这些操作都是自动完成的-开发人员直接使用NET类。

ORM方法


ORM有几种方法。

第一个是Code First。这意味着首先编写C#代码,然后使用此代码创建数据库。对于这种方法,定义将存储在数据库中的模型或实体的类,在C#类中将其描述为模型,并编写将与所用数据库一起使用的上下文类非常重要。 C#程序员最常使用“代码优先”方法。

第二种方法-Database-First-适合那些非常了解SQL的人,但是在这种情况下,不必非常了解C#。首先创建数据库,然后生成EDMX数据库模型。.edmx文件中的此XML包含有关数据库结构,数据模型及其相互映射的信息。Visual Studio有一个图形设计器,您可以使用它与.edmx

Model-First一起使用-这是第三种 ORM 方法架构师经常使用它,因为使用这种方法您无法知道SQL或C#语法。在这种情况下,首先创建图形化EDMX模型,这时在后台创建C#模型类,然后基于EDMX图生成数据库。

实体框架核心模型


通常,根据1个表(例如,用户),-NET中的1个类(例如,用户)的原则,在实体框架中将所有数据库表定义为模型或实体的类。这样的对称为约定,它们在数据上下文类中定义为DbSet集,并且默认情况下此方法有效。

尽管存在诸如Fluent API和数据注释之类的机制,但是可以覆盖这些约定或其他配置规则。

移居


在开发过程中,很可能Entity Framework模型类已更改,并且您必须删除数据库以保持模型的合规性。但是,当您删除数据库时,该数据库中的所有数据也会被删除。

实体框架核心中有一个迁移功能,可以在模型更改时保存数据。它使您可以将架构更改一致地应用于数据库,以使其与数据模型同步。

在迁移中,有一些操作可让您删除,添加列和表,外键,更改列设置,添加,删除和更改数据,等等。创建迁移时,将自动创建一个类,在该类中执行应用Up()迁移并将其返回给Down()方法所需的操作。

LINQ


LINQ与NET中的实体框架密不可分。LINQ是一种语言集成查询或内部查询-这是一项技术,它是NET中的一组功能,使您可以编写结构化的数据库查询。

要与Entity Framework Core配合使用,请使用LINQ to Entities。LINQ使用类似SQL的C#表达式从数据库检索数据。任何关系数据库都通过SQL查询工作,并且Entity Framework Core将LINQ to Entities表达式转换为SQL查询,这些查询对于所使用的数据库是可以理解的。

结论


因此,我们简要介绍了实体框架核心的功能。如您所见,它确实非常强大,而且功能如此之大,以至于使用它的程序员甚至不需要了解SQL。Entity Framework Core正确地在NET世界的ORM中占据第一位。







All Articles