1. 程式人生 > >C# 資料操作系列 - 8. EF Core的增刪改查

C# 資料操作系列 - 8. EF Core的增刪改查

# 0.前言 到目前為止,我們看了一下如何宣告EF Core的初步使用,也整體的看了下EF Core的對映關係配置以及導航屬性的配置。 這一篇,我帶大家分享一下,我在工作中需要的EF Core的用法。 # 1. 初始化 在實際開發中,一般都是先設計好資料表再進行開發,所以很少用到EF Core的資料遷移功能。所以EF Core的初始化,一般也指的是EF Core上下文初始化。 ## 1.1 連線字串 我們通過前面的文章知道,EF Core在上下文初始化的時候,都需要一個連結字串。如果在不考慮後續變更或者上下文的複用性,可以直接在自定義Context裡重寫OnConfiguring方法中定義。 如果需要後續變更,那麼就需要在建立自定義EF Core 上下文類的時候,為之新增一個連線字串的屬性或者欄位,以方便初始化的時候指定。例項: ```c# public class DefaultContext : DbContext { private string Connection { get; set; } = "Data Source=./blogging1.db"; public DefaultContext(string connection) { Connection = connection; } protected override void OnConfiguring(DbContextOptionsBuilder options) => options.UseSqlite(Connection); } ``` 這樣一來,我們在後續使用的時候,就可以指定連線字串了。當然了,如果有小夥伴有更好的方法也可以分享出來呀。 ## 1.2 配置檔案的載入或者實體物件的託管 如果我們不使用配置檔案的話,就必須在EF Core的上下文類裡新增一個型別是DbSet<T>的屬性。繼續延續上面的例項: ```c# public class SingleModel { public int Id { get; set; } public int TargetId { get; set; } public SingleTargetModel SingleTarget { get; set; } } public class SingleTargetModel { public int Id { get; set; } public SingleModel Single { get; set; } } public class DefaultContext : DbContext { // 其餘程式碼參見 1.1 DefaultContext publ