Microsoft.EntityFrameworkCore.Docs.zh-Hans

微软 EntityFrameworkCore 中文文档

大纲

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 并且想要直接跳到新版本的内容细节上,请查阅:

获取 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