一、ef core 預設約定的導航屬性
1、如果兩個型別之間找到一對導航屬性,則它們將被配置為同一關係的反轉導航屬性。
publicclass
blog
public
string url
public listposts}
public
class
post
public
string title
public
string content
public int blogid
public blog blog}
2.依賴實體(多端的實體)包含名稱與其中一種模式相匹配的屬性,則該屬性將被配置為外來鍵:
a.依賴主體設定:導航屬性、外來鍵屬性(導航屬性名+主體主鍵名)
publicclass
blog
public
string url
}public
class
post
public
string title
public
string content
public int blogmodelblogid
public blog blogmodel
}
a.依賴主體設定:導航屬性、外來鍵屬性(導航屬性名+id)
publicclass
blog
public
string url
}public
class
post
public
string title
public
string content
public int blogmodelblogid
public blog blogmodel
}
c.依賴主體設定:導航屬性、外來鍵屬性(主體型別名+主體主鍵名)
publicclass
blog
public
string url
}public
class
post
public
string title
public
string content
public int blogblogid
public blog blogmodel
}
d.依賴主體設定:導航屬性、外來鍵屬性(主體型別名+id)
publicclass
blog
public
string url
}public
class
post
public
string title
public
string content
public
int blogid
public blog blogmodel
}
3.無外來鍵屬性:如果未找到外來鍵屬性,則會引入名稱為或
在此示例中,隱藏外來鍵是
blogid
publicclass
blog
public
string url
public listposts
}public
class
post
public
string title
public
string content
public blog blog}
4.只包含乙個導航屬性(無反向導航,沒有外來鍵屬性)就足以具有約定定義的關係。 還可以有乙個導航屬性和乙個外來鍵屬性
publicclass
blog
public
string url
public listposts
}public
class
post
public
string title
public
string content
}
5.手動設定
a.資料註解方式
publicint blogforeignkey
[foreignkey(
"blogforeignkey
")] //設定外來鍵
public blog blog
b.fluent api 方式
odelbuilder.entity().hasone(p => p.blog).withmany(b =>b.posts).hasforeignkey(p => p.blogforeignkey);
資料庫實體關係
資料庫實體間有三種關聯關係 一對一,一對多,多對多。一對一例項 乙個學生只有個身份證編號。一對多例項 乙個班級有多個學生。多對多例項 多對多就是雙向一對多,乙個學生可以選擇多門課,一門課也有多名學生。一對一關係處理 我們需要建立學生表來存放學生的資訊 列屬性為下面 身份證 學生證年齡 名字一對多關係...
Efcore從資料庫快速生成實體及context
有些專案開發時先建立資料庫,再用codefirst來書寫entity和entityconfiguration,比較耗費功夫。1 在vs2019中新建個asp.net core的web專案,或者其他專案均可。2 開啟nuget管理器命令列。執行以下3條命令安裝相關功能。install package ...
efcore從資料庫快速生成實體及context
有些專案開發時先建立資料庫,再用codefirst來書寫entity和entityconfiguration,比較耗費功夫。1 在vs2017中新建個asp.net core的web專案,或者其他專案均可。2 開啟nuget管理器命令列。執行以下3條命令安裝相關功能。install package ...