• Microsoft.EntityFrameworkCore.Docs.zh-Hans
    • 大纲
    • Entity Framework Core 快速预览
      • 最新版本:EF Core 2.0
      • 获取 Entity Framework Core
      • 模型
    • 查询
    • 保存数据
    • 来源(书栈小编注)

    Microsoft.EntityFrameworkCore.Docs.zh-Hans

    微软 EntityFrameworkCore 中文文档

    大纲

    • 1、EF Core 2.0 新特性
      • EF Core 1.0(以前的版本)
      • EF Core 1.1(以前的版本)
    • 2、入门指南
      • 安装 EF Core
      • .NET Framework(Console、WinForm、WPF等等)
        • .NET Framework - 新数据库
        • .NET Framework - 现有数据库
      • .NET Core(Windows、OSX、Linux 等等)
        • .NET Core - 新数据库
      • ASP.NET Core
        • ASP.NET Core - 新数据库
        • ASP.NET Core - 现有数据库
        • ASP.NET Core 网站上的 EF Core 教程
      • 通用 Windows 平台(UWP)
        • UWP - 新数据库
    • 3、创建模型
      • 包含和排除类型
      • 包含和排除属性
      • 键(主键)
      • 生成值
      • 必须/可选属性
      • 最大长度
      • 并发标记
      • 影子属性
      • 关系
      • 索引
      • 替代键(备用关键字)
      • 继承
      • 支持字段
      • 同一DbContext中的模型交替
      • 关系数据库建模
        • 数据表映射
        • 数据列映射
        • 数据类型
        • 主键
        • 默认模式
        • 计算列
        • 序列
        • 默认值
        • 索引
        • 外键约束
        • 替代键(唯一约束)
        • 继承(关系数据库)
    • 4、查询数据
      • 基础查询
      • 加载关联数据
      • 客户端VS服务端评估
      • 跟踪VS不跟踪
      • 原生SQL查询
      • 异步查询
      • 查询的原理
    • 5、保存数据
      • 基础保存
      • 关系数据
      • 级联删除
      • 并发冲突
      • 事务
      • 异步保存
      • 离线实体
      • 显式设置生成值属性的值
    • 6、平台支持
    • 7、数据库提供程序
      • Microsoft SQL Server
        • 内存优化表
      • SQLite
        • SQLite 局限性
      • PostgreSQL(Npgsql)
      • IBM Data Server
      • MySQL(官方)
      • MySQL(柚子)
      • Microsoft SQL Server Compact Edition
      • 内存数据库(用于测试)
      • Devart(MySQL、Oracle、PostgreSQL、SQLite、DB2、更多)
      • Oracle(尚不可用)
      • MyCat
      • 编写自己的数据库提供程序
    • API 引用
    • 命令行引用
      • 程序包管理控制台(Visual Studio)
      • .NET Core CLI
    • 工具集 & 扩展
      • LLBLGen Pro
      • Devart Entity Developer
      • EFSecondLevelCache.Core
      • EntityFrameworkCore.Detached
      • EntityFrameworkCore.Triggers
      • EntityFrameworkCore.Rx
      • EntityFrameworkCore.PrimaryKey
      • EntityFrameworkCore.TypedOriginalValues
      • EFCore.Practices
      • LinqKit.Microsoft.EntityFrameworkCore
      • Microsoft.EntityFrameworkCore.AutoHistory
      • Microsoft.EntityFrameworkCore.DynamicLinq
      • Microsoft.EntityFrameworkCore.UnitOfWork
    • 其他
      • 连接字符串
      • 日志记录
      • 弹性连接
      • 测试
        • 使用 SQLite 测试
        • 使用内存数据库测试
      • 配置 DbContext
      • 从 1.0 RC 升级到 RC2
      • 从 1.0 RC2 升级到 RTM
      • 升级到 EF Core 2.0

    Entity Framework Core 快速预览

    Entity Framework(EF) Core 是 当前流行的 Entity Framework 数据访问技术的一个轻量级、可扩展、跨平台版本。

    EF Core 是一个对象关系映射(O/RM)框架,它允许 .NET 开发者使用 .NET 对象来做数据库相关的事情。它消除了大部分开发者本来要编写的数据访问代码。EF Core 支持多种数据库引擎,详细信息参见 数据库提供程序。

    如果你喜欢通过敲代码来学习,我们建议你通过我们的 入门指南 来开始学习 EF Core。

    最新版本:EF Core 2.0

    如果你们熟悉 EF Core 并且想要直接跳到新版本的内容细节上,请查阅:

    • EF Core 2.0 新特性
    • 将现有应用程序升级到 EF Core 2.0

    获取 Entity Framework Core

    为你想要使用的数据库提供程序安装相应的 NeGet 程序包。比如在跨平台开发中安装 SQL Server 提供程序,可以在命令行中使用 dotnet 工具:

    1. dotnet add package Microsoft.EntityFrameworkCore.SqlServer

    或者在 Visual Studio 的程序包管理控制台运行:

    1. Install-Package Microsoft.EntityFrameworkCore.SqlServer

    查看 数据库提供程序 以了解关于如何获取提供程序的信息, 安装 EF Core 以了解详细的安装步骤。

    模型

    在 EF Core 中,数据访问是通过模型来实现的。一个模型由实体类型和一个表示一个数据库会话的派生上下文构成,你可以通过模型来查询和保存数据。查看 创建模型 以了解更多。

    你可以从现有数据库生成模型,手动编写模型来匹配你的数据库,或者使用 EF 迁移来从你的模型创建数据库(并在你的模型变更时推进它)。

    1. using Microsoft.EntityFrameworkCore;
    2. using System.Collections.Generic;
    3. namespace Intro
    4. {
    5. public class BloggingContext : DbContext
    6. {
    7. public DbSet<Blog> Blogs { get; set; }
    8. public DbSet<Post> Posts { get; set; }
    9. }
    10. protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    11. {
    12. optionsBuilder.UseSqlServer(@"Server=(localdb)\mssqllocaldb;Database=MyDatabase;Trusted_Connection=True;");
    13. }
    14. public class Blog
    15. {
    16. public int BlogId { get; set; }
    17. public string Url { get; set; }
    18. public int Rating { get; set; }
    19. public List<Post> Posts { get; set; }
    20. }
    21. public class Post
    22. {
    23. public int PostId { get; set; }
    24. public string Title { get; set;}
    25. public string Content { get; set; }
    26. public int BlogId { get; set; }
    27. public Blog Blog { get; set; }
    28. }
    29. }

    查询

    你的实体类型的实例是使用 LINQ(Language Integrated Query,语言集成查询)从数据库中遍历出来的。查看 查询数据 以了解更多。

    1. using(var db = new BloggingContext())
    2. {
    3. var blogs = db.Blogs
    4. .Where(b => b.Rating > 3)
    5. .OrderBy(b => b.Url)
    6. .ToList();
    7. }

    保存数据

    数据库中的数据通过你的实体类型实例来进行创建、删除和修改。查看 保存数据 以了解更多。

    1. using(var db = new BloggingContext())
    2. {
    3. var blog = new Bolg { Url = "http://sample.com" };
    4. db.Blogs.Add(blog);
    5. db.SaveChanges();
    6. }

    捐赠

    来源(书栈小编注)

    https://github.com/raochunjiang/Microsoft.EntityFrameworkCore.Docs.zh-Hans