Entity Framework Core系列之什么是Entity Framework Core
前言
Entity Framework Core (EF Core)是微软推荐的基于.NET Core framework的应用程序数据访问技术。它是轻量级,可扩展并且支持跨平台开发。EF Core是一种对象关系映射器(ORM)。通过应用程序实体对象和关系数据库中的数据的映射,使得开发人员能够以面向对象的方式处理数据。
为什么使用ORM
大多数开发框架都包含库,这些库允许通过类似记录集的数据结构访问关系数据库中的数据。下面的代码示例演示了一个典型的场景,即数据从数据库中检索并存储在ADO.NET DataTable中,以便程序的代码可以访问该数据:
using (var conn = new SqlConnection(connectionString)) using (var cmd = new SqlCommand("select * from Products", conn)) { var dt = new DataTable(); using (var da = new SqlDataAdapter(cmd)) { da.Fill(dt); } }
DataTable中的数据可以通过数字或字符串索引器访问将对象转换为正确的类型:
foreach(DataRow row in dt.Rows) { int productId = Convert.ToInt32(row[0]); string productName = row["ProductName"].ToString(); }
这种后绑定或“弱类型”的数据访问方法很容易出错。经常会出现错误的输入列的名称,或者发现列名在数据库中已经被更改了,或者更改SQL语句中指定字段的顺序,而没有对应用程序代码进行相应的更改等问题,最后数据类型转换失败,代码仍然可以编译,但在运行时会出错。因此,专业开发人员更喜欢以强类型的方式处理数据。
强类型:
当您对数据采用强类型方法时,您将使用预定义类的属性,这些类以面向对象的方式形成模型(Model会在后续章节中专门做说明):
public class Product { public int ProductId { get; set; } public string ProductName { get; set; } }
Product myProduct = new Product(); int productId = myProduct.ProductId; string productName = myProduct.ProductName;
要从数据库中检索数据并将其映射到域对象的实例,还需要做一些工作。一种选择是编写自己的代码来管理它,然而随着模型的增长,代码量会越来越大,意味着我们将需要越来越多的开发时间去维护。这将增加完成项目的总时间。
ORM是预先编写的代码库,功能齐全的ORM可以做很多事情:
- 将Model映射到数据库对象
- 创建数据库并且维护它的模式保持和Model一致
- 生成SQL并执行
- 管理事务
- 跟踪已经检索的对象
如何获取Entity Framework Core
EF CORE是 Nuget 包,可以根据项目类型和可用的工具以多种方式添加到项目中:下面介绍3中方式Visual Studio包管理器,包管理器控制台(Package Manager Console),命令行工具(Command Line Tools)
Visual Studio包管理器:
Visual Studio的用户可以通过包管理工具选项之一安装 EF CORE,而不用管其项目类型(.NET Core or the full .NET Framework),NuGet包管理器界面或包管理器控制台。
NuGet包管理器(Nuget Package Manager)
1.打开Visual Studio>> Tools >> NuGet Package Manager >> Manage NuGet Packages For Solution
2.选中"浏览(Browse)",并在搜索框中键入“entityframeworkcore”。
3.选中要安装的程序,这里选择SQL SERVER
4.选择你想要安装EF CORE的项目,然后点击安装(Install)
5.查看即将对项目进行的更改(除非您之前已经勾选了框以防止出现此对话框)
6.最后,接受与将要安装的包相关联的各种许可证的条款
包管理器控制台(Package Manager Console)
1.打开Visual Studio>> Tools >> NuGet Package Manager >> Package Manager Console
2.确保在“默认项目(Default project)”下拉菜单中选择正确的项目,并键入install-package microsoft.entityframeworkcore.sqlserver来安装SQL服务器提供程序,点击回车键安装即可
命令行工具(Command Line Tools)
首先创建一个项目,命令行到 包含.csproj (或者 project.json)的文件夹之后,执行命令dotnet add package Microsoft.EntityFrameworkCore.SqlServer也可安装EF CORE,假设我新建的项目在E盘的文件夹下:
如果你想用EF Core工具去迁移或者搭建,还需要执行以下命令
dotnet add package Microsoft.EntityFrameworkCore.Tools --version 1.1.0-msbuild3-final
原文链接:https://www.learnentityframeworkcore.com/efcore/how-to-get