前言
本博客翻譯自微軟官方文檔 : https://docs.microsoft.com/en-us/ef/core/get-started/?tabs=visual-studio
正文
在本教程中,您將創建一個.NET Core控制檯應用程序,該應用程序使用Entity Framework Core對SQLite數據庫執行數據訪問。
您可以通過在Windows上使用Visual Studio或在Windows,macOS或Linux上使用.NET Core CLI來遵循本教程。
前提條件
安裝以下軟件:
- .NET Core CLI: .NET Core SDK.
- Visual Studio : Visual Studio 2019版本16.3或更高版本 : .NET Core cross-platform development (under Other Toolsets)
創建一個新項目
.NET Core CLI創建項目
dotnet new console -o EFGetStarted
cd EFGetStarted
Visual Studio創建項目
- 打開Visual Studio
- 點擊創建一個新項目
- 選擇帶有C#標籤的控制檯應用程序(.NET Core),然後單擊下一步
- 輸入EFGetStarted作爲名稱,然後單擊創建
安裝Entity Framework Core
要安裝EF Core,請爲要定位的EF Core數據庫提供程序安裝軟件包。 本教程使用SQLite,因爲它可以在.NET Core支持的所有平臺上運行。 有關可用提供商的列表, 查看 數據庫提供程序。
.NET Core CLI方式
dotnet add package Microsoft.EntityFrameworkCore.Sqlite
Visual Studio方式
提示:您還可以通過右鍵單擊項目並選擇管理NuGet軟件包來安裝軟件包。 |
創建模型
定義組成模型的上下文類和實體類。
.NET Core CLI方式
- 在項目目錄中,使用以下代碼創建Model.cs
Visual Studio方式
- 右鍵單擊項目,然後選擇添加>類
- 輸入Model.cs作爲名稱,然後單擊添加
- 用以下代碼替換文件的內容
using System.Collections.Generic;
using Microsoft.EntityFrameworkCore;
namespace EFGetStarted
{
public class BloggingContext : DbContext
{
public DbSet<Blog> Blogs { get; set; }
public DbSet<Post> Posts { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder options)
=> options.UseSqlite("Data Source=blogging.db");
}
public class Blog
{
public int BlogId { get; set; }
public string Url { get; set; }
public List<Post> Posts { get; } = new List<Post>();
}
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; }
}
}
EF Core還可以對現有數據庫中的模型進行逆向工程。
提示:此應用程序有意使事情變得簡單明瞭。 連接字符串不應存儲在生產應用程序的代碼中。 您可能還希望將每個C#類拆分爲自己的文件。
創建數據庫
以下步驟使用遷移來創建數據庫。
.NET Core CLI
運行以下命令:
dotnet tool install --global dotnet-ef
dotnet add package Microsoft.EntityFrameworkCore.Design
dotnet ef migrations add InitialCreate
dotnet ef database update
這將安裝dotnet ef和在項目上運行命令所需的設計包。 遷移命令用於遷移以創建模型的初始表集。 數據庫更新命令將創建數據庫並將新的遷移應用於該數據庫。
Visual Studio方式
在Package Manager控制檯中運行以下命令
Install-Package Microsoft.EntityFrameworkCore.Tools
Add-Migration InitialCreate
Update-Database
這將安裝EF Core的PMC工具。 Add-Migration命令支持遷移以創建模型的初始表集。 Update-Database命令創建數據庫並將新的遷移應用於該數據庫。
創建,讀取,更新和刪除
打開Program.cs並將內容替換爲以下代碼:
using System;
using System.Linq;
namespace EFGetStarted
{
class Program
{
static void Main()
{
using (var db = new BloggingContext())
{
// Create
Console.WriteLine("Inserting a new blog");
db.Add(new Blog { Url = "http://blogs.msdn.com/adonet" });
db.SaveChanges();
// Read
Console.WriteLine("Querying for a blog");
var blog = db.Blogs
.OrderBy(b => b.BlogId)
.First();
// Update
Console.WriteLine("Updating the blog and adding a post");
blog.Url = "https://devblogs.microsoft.com/dotnet";
blog.Posts.Add(
new Post
{
Title = "Hello World",
Content = "I wrote an app using EF Core!"
});
db.SaveChanges();
// Delete
Console.WriteLine("Delete the blog");
db.Remove(blog);
db.SaveChanges();
}
}
}
}
運行應用
.NET Core CLI方式
dotnet run
Visual Studio方式
運行.NET Core控制檯應用程序時,Visual Studio使用不一致的工作目錄。 (請參閱dotnet / project-system#3619)這會引發異常:沒有這樣的表:Blogs。 要更新工作目錄:
- 右鍵單擊項目並選擇``編輯項目文件''
- 在TargetFramework屬性下方,添加以下內容:
<StartWorkingDirectory>$(MSBuildProjectDirectory)</StartWorkingDirectory>
- 保存文件
現在您可以運行該應用程序:
- Debug > Start Without Debugging