Entity Framework Core(EF Core) 最简单的入门示例
目录
概述 基于 .NET Core 的 EF Core 入门 创建新项目 更改当前目录 安装 Entity Framework Core 创建模型 创建数据库 使用模型
概述
Entity Framework (EF) Core 是轻量化, 可扩展, 开源和跨平台版的常用 Entity Framework 数据访问技术.
EF Core 可用作对象关系映射程序 (O/RM), 以便于 .NET 开发人员能够使用 .NET 对象来处理数据库, 这样就不必经常编写大部分数据访问代码了.
EF Core 支持多个数据库引擎, 请参阅数据库提供程序了解详细信息.
基于 .NET Core 的 EF Core 入门
在本教程中, 将创建一个 .NET Core 控制台应用, 该应用使用 Entity Framework Core 对 Microsoft SQL Server 数据库执行数据访问.
创建新项目
新建控制台项目:
执行 PowerShell 命令
dotnet new console -o ConsoleApp
如下图
更改当前目录
将当前目录更改为应用程序的目录, 如下所示:
cd ConsoleApp
安装 Entity Framework Core
安装 Microsoft.EntityFrameworkCore.SqlServer 和 Microsoft.EntityFrameworkCore.Tools
- dotnet add package Microsoft.EntityFrameworkCore.SqlServer
- dotnet add package Microsoft.EntityFrameworkCore.Tools
运行 dotnet restore 来安装新的程序包.
创建模型
使用以下内容创建一个新的 Model.cs 文件.
- using Microsoft.EntityFrameworkCore;
- using System.Collections.Generic;
- namespace ConsoleApp
- {
- public class BloggingContext : DbContext
- {
- public DbSet Blogs { get; set; }
- public DbSet Posts { get; set; }
- protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
- {
- optionsBuilder.UseSqlServer("Server = 你的数据库地址; Database=ConsoleApp;User Id = 你的数据库账号; Password = 你的数据库密码;");
- }
- }
- public class Blog
- {
- public int BlogId { get; set; }
- public string Url { get; set; }
- public ICollection 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; }
- }
- }
在实际应用程序中, 应将每个类放在单独的文件中, 并将连接字符串放在配置文件或环境变量中. 为简化本教程, 所有内容均放在一个文件中.
创建数据库
有了模型后, 即可通过迁移创建数据库.
运行 dotnet ef migrations add InitialCreate 以为迁移搭建基架, 并为模型创建一组初始表. 运行 dotnet ef database update 以将新迁移应用到数据库. 在应用迁移之前, 此命令可创建数据库.
使用模型
打开 Program.cs 并将内容替换为以下代码:
- using System;
- namespace ConsoleApp
- {
- class Program
- {
- static void Main(string[] args)
- {
- using (var db = new BloggingContext())
- {
- db.Blogs.Add(new Blog { Url = "https://blogs.msdn.com/adonet" });
- var count = db.SaveChanges();
- Console.WriteLine("{0} records saved to database", count);
- Console.WriteLine();
- Console.WriteLine("All blogs in database:");
- foreach (var blog in db.Blogs)
- {
- Console.WriteLine("- {0}", blog.Url);
- }
- }
- }
- }
- }
运行 dotnet run 从控制台测试应用.
来源: https://www.2cto.com/kf/201904/801309.html