在本篇文章中,學習添加用於管理資料庫中的書籍的實體類。通過實體框架(EF Core)使用這些類來處理資料庫。EF Core是一個對象關係映射(ORM)框架,它簡化了編寫資料庫訪問的代碼。 創建的實體類被稱為POCO類(“普通的CLR對象”)因為他們沒有在EF Core中有任何依賴。它... ...
在Razor頁面應用程式中添加一個實體
在本篇文章中,學習添加用於管理資料庫中的書籍的實體類。通過實體框架(EF Core)使用這些類來處理資料庫。EF Core是一個對象關係映射(ORM)框架,它簡化了編寫資料庫訪問的代碼。
創建的實體類被稱為POCO類(“普通的CLR對象”)因為他們沒有在EF Core中有任何依賴。它們定義存儲在資料庫中的數據的屬性。
一、添加一個實體類
- 在Visual Studio 2017的解決方案資源管理器中,右鍵單擊該RazorMvcBooks,在彈出菜單中選擇,項目-->添加-->新建文件夾,修改文件夾名稱為“Models”。如下圖。
2. 滑鼠右鍵單擊“Models”文件夾。在彈出菜單中選擇,添加-->類。類名為Book。如下圖。
3.在book類中的代碼文件中添加以下屬性
using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace RazorMvcBooks.Models { public class Book { public int ID { get; set; } public string Name { get; set; } public DateTime ReleaseDate { get; set; } public string Author { get; set; } public decimal Price { get; set; } } }
其中ID欄位必須是資料庫中表Book的主鍵。
二、添加資料庫上下文類
在Models文件夾中添加BookContext.cs類,繼承自DbContext,操作方式如上第2點中的圖所示,代碼如下:
using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.EntityFrameworkCore; namespace RazorMvcBooks.Models { public class BookContext:DbContext { public BookContext(DbContextOptions<BookContext> options) : base(options) { } public DbSet<Book> Book { get; set; } } }
之前的代碼中我們創建了一個DbSet<Book>類型的屬性Book.在實體框架中,實體集合通過對應資料庫中的表,實體對應表中的行。
三、添加資料庫連接字元串
在Visual Studio 2017中的資源管理器中找到appsettings.json文件,用滑鼠雙擊打開,在文件中添加一個連接字元串,代碼如下。
{ "Logging": { "IncludeScopes": false, "LogLevel": { "Default": "Warning" } }, "ConnectionStrings": { "BookContext": "Server=.\\sqlexpress;Database=Books;Trusted_Connection=True;MultipleActiveResultSets=true" } }
四、註冊資料庫上下文
在Visual Studio 2017中的資源管理器中找到startup.cs文件,用滑鼠雙擊打開,在startup.cs文件的ConfigureServices方法中寫入依賴註入容器註冊資料庫上下文的代碼,具體代碼如下。
using Microsoft.EntityFrameworkCore; using RazorMvcBooks.Models; public void ConfigureServices(IServiceCollection services) { services.AddDbContext<BookContext>(options =>options.UseSqlServer(Configuration.GetConnectionString("BookContext"))); services.AddMvc(); }
最後,在Visual Studio 2017中的菜單中選擇“生成-->生成解決方案”對項目進行編譯,以驗證自己寫的代碼沒有任何錯誤同。