W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
在本教程中,你將使用 Entity Framework Core 構建執(zhí)行基本數(shù)據(jù)訪問的 ASP.NET Core MVC 應用程序。 該教程使用遷移基于此數(shù)據(jù)模型創(chuàng)建數(shù)據(jù)庫。
你可在 Windows 上使用 Visual Studio 2017,或在 Windows、macOS 或 Linux 上使用 .NET Core CLI 來學習本教程。
在 GitHub 上查看此文章的示例:
安裝以下軟件:
警告:如果你使用“單獨用戶帳戶”(而不是“無”)進行身份驗證,Entity Framework Core 模型會添加到 Models\IdentityModel.cs
中的項目。 使用在本教程中學習的技巧,可以選擇添加第二個模型,或者擴展此現(xiàn)有模型以包含實體類。
要安裝 EF Core,請為要作為目標對象的 EF Core 數(shù)據(jù)庫提供程序安裝程序包。 有關可用提供程序的列表,請參閱數(shù)據(jù)庫提供程序。
對于本教程,無需安裝提供程序包,因為本教程使用 SQL Server。 SQL Server 提供程序包包含在 Microsoft.AspnetCore.App 元包中。
定義構成模型的上下文類和實體類。
右鍵單擊“Models”文件夾,然后選擇“添加”>“類”。
輸入“Model.cs”作為名稱,然后單擊“確定”。
將此文件的內容替換為以下代碼:
using Microsoft.EntityFrameworkCore;
using System.Collections.Generic;
namespace EFGetStarted.AspNetCore.NewDb.Models
{
public class BloggingContext : DbContext
{
public BloggingContext(DbContextOptions<BloggingContext> options)
: base(options)
{ }
public DbSet<Blog> Blogs { get; set; }
public DbSet<Post> Posts { get; set; }
}
public class Blog
{
public int BlogId { get; set; }
public string Url { get; set; }
public ICollection<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; }
}
}
生產(chǎn)應用通常會將每個類放在單獨的文件中。 為簡單起見,本教程將這些類放在一個文件中。
若要使 BloggingContext 可用于 MVC 控制器,請在 Startup.cs 中將其注冊為服務。
在應用程序啟動過程中,通過依賴關系注入 注冊服務(如 BloggingContext),以便能夠通過構造函數(shù)的參數(shù)和屬性向使用服務的組件(如 MVC 控制器)自動提供該服務。
在 Startup.cs 中,添加以下 using
語句:
using EFGetStarted.AspNetCore.NewDb.Models;
using Microsoft.EntityFrameworkCore;
將以下突出顯示的代碼添加到 ConfigureServices
方法:
public void ConfigureServices(IServiceCollection services)
{
services.Configure<CookiePolicyOptions>(options =>
{
// This lambda determines whether user consent for non-essential cookies is needed for a given request.
options.CheckConsentNeeded = context => true;
options.MinimumSameSitePolicy = SameSiteMode.None;
});
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
var connection = @"Server=(localdb)\mssqllocaldb;Database=EFGetStarted.AspNetCore.NewDb;Trusted_Connection=True;ConnectRetryCount=0";
services.AddDbContext<BloggingContext>
(options => options.UseSqlServer(connection));
// BloggingContext requires
// using EFGetStarted.AspNetCore.NewDb.Models;
// UseSqlServer requires
// using Microsoft.EntityFrameworkCore;
}
生產(chǎn)應用通常會將連接字符串放在配置文件或環(huán)境變量中。 為簡單起見,本教程在代碼中定義它。有關詳細信息,請參閱連接字符串 。
以下步驟使用遷移創(chuàng)建數(shù)據(jù)庫。
“工具”>“NuGet 包管理器”>“包管理器控制臺”
運行以下命令:
Add-Migration InitialCreate
Update-Database
如果收到錯誤,指出 The term 'add-migration' is not recognized as the name of a cmdlet
,請關閉并重新打開 Visual Studio。
Add-Migration
命令為遷移搭建基架,以便為模型創(chuàng)建一組初始表。 Update-Database
命令創(chuàng)建數(shù)據(jù)庫并向其應用新的遷移。
生成 Blog 實體控制器和視圖的基架。
基架引擎創(chuàng)建以下文件:
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: