Entity Framework(EF) Core
Entity Framework 是一种支持 .NET 开发人员使用 .NET 对象处理数据库的对象关系映射程序 (O/RM)。 它不要求提供开发人员通常需要编写的大部分数据访问代码。
EF Core 是轻量化、可扩展和跨平台版的 Entity Framework。
学习资源
-
官方文档
-
博客
-
博客园
-
CSDN
-
-
技术书籍
-
GitHub,使用 "awesome + xx" 搜索,就会发现关于这些东西的学习资料,无论是书籍资源,库资源,还是学习视频、学习笔记,应有尽有。如用 "Awesome Entity Framework Core" 搜索,找到zzzprojects/awesome-entity-framework-core。
第一个 EF Core 程序
在学习 EF Core 前我已经从事过 .NET Framework 的 Windows Forms 开发,也粗略了解过 .NET Core。所以 Visual Studio,.NET 组件,SQL Server Express LocalDB 等已安装完成。
同时在公交上看完了 solenovex 的Entity Framework Core 2.x 入门 (完结)视频,所以可以直接可以写一个程序了,因为学开发必须要写代码。然后再回过头来看文档,或重看视频,在这个过程中再梳理基本知识点,记录下主要步骤,再然后就是在实践中应用了。
坏境
-
windows10(10.0.17763)
-
Visual Studio 2017(15.9.11)
创建项目
-
创建一个 .NET Core 的控制台项目
-
通过 NuGet 安装
Microsoft.EntityFrameworkCore.SqlServer
和Microsoft.EntityFrameworkCore.Design
包。 -
创建模型和配置DbContext
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=Blogging;Integrated Security=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; }
}
}
- 添加数据库,在工具”>“NuGet 包管理器”>“包管理器控制台”,运行以下命令:
Add-Migration InitialCreate
Update-Database
这里出现了一个错误:
无法将“add-migration”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。
需要在 PowerShell 中设置权限和在 NuGet 中导入就可以了:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
import-module C:\Users\MyPC\.nuget\packages\microsoft.entityframeworkcore.tools\2.2.2\tools\EntityFrameworkCore.psd1
- 查询,保存数据
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 Blog { Url = "http://sample.com" };
db.Blogs.Add(blog);
db.SaveChanges();
}
第一个 EF Core 程序
网友评论