Entity Framework CoreEntity Framework Core

Entity Framework (EF) Core 是轻量化、可扩展、开源和跨平台版的常用 Entity Framework 数据访问技术。

EF Core 可用作对象关系映射程序 (O/RM),以便于 .NET 开发人员能够使用 .NET 对象来处理数据库,这样就不必经常编写大部分数据访问代码了。

EF Core 支持多个数据库引擎,请参阅数据库提供程序了解详细信息。

模型The Model

对于 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. protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
  10. {
  11. optionsBuilder.UseSqlServer(
  12. @"Server=(localdb)\mssqllocaldb;Database=Blogging;Integrated Security=True");
  13. }
  14. }
  15. public class Blog
  16. {
  17. public int BlogId { get; set; }
  18. public string Url { get; set; }
  19. public int Rating { get; set; }
  20. public List<Post> Posts { get; set; }
  21. }
  22. public class Post
  23. {
  24. public int PostId { get; set; }
  25. public string Title { get; set; }
  26. public string Content { get; set; }
  27. public int BlogId { get; set; }
  28. public Blog Blog { get; set; }
  29. }
  30. }

查询Querying

使用语言集成查询 (LINQ) 从数据库检索实体类的实例。 有关详细信息,请参阅查询数据

  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. }

保存数据Saving Data

使用实体类的实例在数据库中创建、删除和修改数据。 有关详细信息,请参阅保存数据

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

后续步骤Next steps

有关介绍性教程,请参阅 Entity Framework Core 入门