C# 資料操作系列 - 8. EF Core的增刪改查
阿新 • • 發佈:2020-05-18
# 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