微软 EntityFrameworkCore 中文文档
- 1、EF Core 2.0 新特性
- 2、入门指南
- 3、创建模型
- 4、查询数据
- 5、保存数据
- 6、平台支持
- 7、数据库提供程序
- API 引用
- 命令行引用
- 工具集 & 扩展
- 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
- 其他
Entity Framework(EF) Core 是 当前流行的 Entity Framework 数据访问技术的一个轻量级、可扩展、跨平台版本。
EF Core 是一个对象关系映射(O/RM)框架,它允许 .NET 开发者使用 .NET 对象来做数据库相关的事情。它消除了大部分开发者本来要编写的数据访问代码。EF Core 支持多种数据库引擎,详细信息参见 数据库提供程序。
如果你喜欢通过敲代码来学习,我们建议你通过我们的 入门指南 来开始学习 EF Core。
如果你们熟悉 EF Core 并且想要直接跳到新版本的内容细节上,请查阅:
为你想要使用的数据库提供程序安装相应的 NeGet 程序包。比如在跨平台开发中安装 SQL Server 提供程序,可以在命令行中使用 dotnet
工具:
dotnet add package Microsoft.EntityFrameworkCore.SqlServer
或者在 Visual Studio 的程序包管理控制台运行:
Install-Package Microsoft.EntityFrameworkCore.SqlServer
查看 数据库提供程序 以了解关于如何获取提供程序的信息, 安装 EF Core 以了解详细的安装步骤。
在 EF Core 中,数据访问是通过模型来实现的。一个模型由实体类型和一个表示一个数据库会话的派生上下文构成,你可以通过模型来查询和保存数据。查看 创建模型 以了解更多。
你可以从现有数据库生成模型,手动编写模型来匹配你的数据库,或者使用 EF 迁移来从你的模型创建数据库(并在你的模型变更时推进它)。
using Microsoft.EntityFrameworkCore;
using System.Collections.Generic;
namespace Intro
{
public class BloggingContext : DbContext
{
public DbSet<Blog> Blogs { get; set; }
public DbSet<Post> Posts { get; set; }
}
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer(@"Server=(localdb)\mssqllocaldb;Database=MyDatabase;Trusted_Connection=True;");
}
public class Blog
{
public int BlogId { get; set; }
public string Url { get; set; }
public int Rating { get; set; }
public List<Post> Posts { get; set; }
}
public class Post
{
public int PostId { get; set; }
public string Title { get; set;}
public string Content { get; set; }
public int BlogId { get; set; }
public Blog Blog { get; set; }
}
}
你的实体类型的实例是使用 LINQ(Language Integrated Query,语言集成查询)从数据库中遍历出来的。查看 查询数据 以了解更多。
using(var db = new BloggingContext())
{
var blogs = db.Blogs
.Where(b => b.Rating > 3)
.OrderBy(b => b.Url)
.ToList();
}
数据库中的数据通过你的实体类型实例来进行创建、删除和修改。查看 保存数据 以了解更多。
using(var db = new BloggingContext())
{
var blog = new Bolg { Url = "http://sample.com" };
db.Blogs.Add(blog);
db.SaveChanges();
}