zoukankan      html  css  js  c++  java
  • Entity Framework Core系列教程-1

    Entity Framework Core 系列教程
    翻译自:

    https://www.entityframeworktutorial.net/efcore/entity-framework-core.aspx

    Entity Framework Core简介

    简介

    Entity Framework Core(EF Core)是轻量化、可扩展、开源和跨平台版的常用 Entity Framework 数据访问技术。
    EF Core 可用作对象关系映射程序 (O/RM),以便于 .NET 开发人员能够使用 .NET 对象来处理数据库,这样就不必经常编写大部分数据访问代码了。
    EF Core是对象/关系映射(O / RM)框架。它是对ADO.NET的增强,它为开发人员提供了一种自动机制,用于访问和存储数据库中的数据。
    EF Core在与.NET Core应用程序一起使用。但是,它也可以与基于标准.NET 4.5+框架的应用程序一起使用。
    下图列出了EF Core支持的应用程序类型,.NET Framework和操作系统:
    在这里插入图片描述

    EF Core版本历史记录

    EF Core目前版本是3.1,是长期支持版,适合做项目开发。

    发行版本 目标框架 支持截止时间
    EF Core 3.1 NET Standard 2.0 2022 年 12 月 3 日 (LTS)
    EF Core 3.0 .NET Standard 2.1 2020 年 3 月 3 日
    EF Core 2.2 .NET Standard 2.0 过期时间:2019 年 12 月 23 日
    EF Core 2.1 .NET Standard 2.0 021 年 8 月 21 日 (LTS)
    EF Core 2.0 .NET Standard 2.0 过期时间:2018 年 10 月 1 日
    EF Core 1.1 .NET Standard 1.3 过期时间:2019 年 6 月 27 日
    EF Core 1.0 .NET Standard 1.3 过期时间:2019 年 6 月 27 日

    EF Core GitHub源码:https://github.com/aspnet/EntityFrameworkCore
    EF Core Roadmap:docs.microsoft.com/zh-cn/ef/core/what-is-new/roadmap
    EF Core’s issues:https://github.com/aspnet/EntityFrameworkCore/issues
    EF Core官方文档:https://docs.microsoft.com/ef/core

    为什么使用EF Core

    1. 生产力
    2. 支持很多数据库
    3. 可以使用Linq
    4. 注重领域(Domain),而不是数据库

    EF Core 开发方法

    EF Core支持两种开发方法:1)Code-First(代码优先); 2)Database-First(数据库优先)。 EF Core主要针对Code-First方法,很少提供对Database-First方法的支持,因为从EF Core 2.0开始不支持可视化的DB模型设计器或向导。

    在Code-First(方法中,EF Core API会根据你的代码中的领域模型中提供的约定和配置,使用迁移来创建数据库和表。此方法在领域驱动设计(DDD)中很有用。

    在Database-First方法中,EF Core API使用EF Core命令基于现有数据库创建领域模型和数据库上下文(DbContext)类。由于它不支持可视设计器或向导,因此在EF Core中的支持有限。

    EF Core vs EF 6

    EF Core是主要用于.NET Core应用程序,基于Entity Framework的新版本和改进版本,EF Core也支持.NET Framework应用程序。
    Entity Framework 6 (EF6) 是专为 .NET Framework 设计的对象关系映射器,但支持 .NET Core。

    EF Core继续支持与EF 6相同的以下功能和概念:

    • DbContext & DbSet
    • Data Model
    • Querying using Linq-to-Entities
    • Change Tracking
    • SaveChanges
    • Migrations

    EF Core将逐步包括EF 6的大多数功能。但是,EF Core 2.0中不支持EF 6的某些功能,例如:

    • EDMX /模型的图形可视化
    • 实体数据模型向导(用于DB-First方法)
    • ObjectContext API
    • Querying using Entity SQL.
    • 使用Entity SQLL查询
    • 自动迁移
    • 继承:每个类型一个表 (TPT)
    • 继承:每个具体类一个表 (TPC)
    • 多对多,无联接实体
    • 实体拆分
    • 空间数据(Spatial Data)
    • 延迟加载关联数据
    • 使用DbContext存储过程映射以进行CUD操作
    • 种子数据(Seed data)
    • 自动迁移(Automatic migration)

    EF Core包含EF 6.x不支持的以下新功能:

    • 关系配置更方便
    • 增删改批处理操作
    • 为测试程序提供的In-memory provider
    • 支持IoC(控制反转)
    • 唯一键的约束
    • 投影属性
    • Alternate keys(备用键)
    • 全局查询过滤器
    • 字段映射
    • DbContext连接池
    • 为处理断开实体图提供更好的模式

    在此处了解有关EF Core和EF 6差异的更多信息。

    https://docs.microsoft.com/en-us/ef/efcore-and-ef6/features

    EF Core Database Providers

    EF Core使用Provider(提供者)程序模型来访问许多不同的数据库。使用不同的数据库需要在应用程序中添加相应的Database Provider NuGet软件包。
    下表列出了EF Core的数据库提供程序和NuGet程序包。

    数据库 NuGet 包
    SQL Server Microsoft.EntityFrameworkCore.SqlServer
    MySQL MySql.Data.EntityFrameworkCore
    PostgreSQL Microsoft.EntityFrameworkCore.SqlServer
    SQLite Microsoft.EntityFrameworkCore.SQLite
    SQL Compact EntityFrameworkCore.SqlServerCompact40
    In-memory Microsoft.EntityFrameworkCore.InMemory

    其他的Database Provider参考:

    https://docs.microsoft.com/zh-cn/ef/core/providers/index?tabs=dotnet-core-cli

    下一章,我们将学习安装EF Core。

  • 相关阅读:
    234树(2)实现
    矩阵的坐标变换(转)
    OpenGL 学习笔记(3)绘制几何物体
    OpenGL 学习笔记(1)初始化窗体
    OpenGL学习笔记(5)3D基本概念
    矩阵的三维变换(转)
    OpenGL 学习笔记(2)创建第一个图形
    234树(1)概念
    OpenGL 学习笔记(4)顶点数组
    OpenGL学习笔记(6)第一个动画
  • 原文地址:https://www.cnblogs.com/AlexanderZhao/p/12878747.html
Copyright © 2011-2022 走看看