- 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
- 编写自己的数据库提供程序
- Microsoft SQL Server
- 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
工具:
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();
}
来源(书栈小编注)
https://github.com/raochunjiang/Microsoft.EntityFrameworkCore.Docs.zh-Hans