Entity Framework 实体关系总结(转)
通過 Entiy Framework實(shí)踐系列文章,理了理 Entity Framework 的實(shí)體關(guān)系。
為什么要寫文章來理清這些關(guān)系?“血”的教訓(xùn)啊,剛開始使用 Entity Framework?的時(shí)候,由于沒有靜下心來認(rèn)真理清關(guān)系,走了一些"痛不欲生"的彎路。而我們目前開發(fā)的項(xiàng)目都在使用 Entity Framework,為了避免其他人再經(jīng)歷"痛不欲生"的彎路。于是下定決心邊“理清關(guān)系”邊“寫博客”。而寫博客可以逼著自己把問題完整地解決,避免半途而廢。當(dāng)寫出這些文章,自己不知不覺對(duì)問題有了更深的理解。
溫故而知新,通過這篇總結(jié)將自己對(duì)EF實(shí)體關(guān)系的理解回鍋熱一熱,也許會(huì)有新的收獲;感情也一樣,當(dāng)感情冷下來的時(shí)候,別忘了回鍋熱一熱。
1. 一對(duì)一關(guān)系(one-to-one)
a) 單向一對(duì)一(文章鏈接)
類圖:
數(shù)據(jù)庫表結(jié)構(gòu):
Entity Framework中實(shí)體關(guān)系的定義:
modelBuilder.Entity<BlogSite>().HasRequired(b => b.BlogUser)
.WithMany()
.HasForeignKey(b => b.UserID);
b) 雙向一對(duì)一(文章鏈接)
類圖:
數(shù)據(jù)庫表結(jié)構(gòu):
Entity Framework中實(shí)體關(guān)系的定義:
modelBuilder.Entity<BlogSite>().HasRequired(b => b.BlogUser)
.WithMany()
.HasForeignKey(b => b.UserID);
modelBuilder.Entity<BlogUser>()
.HasRequired(u => u.BlogSite)
.WithMany()
.HasForeignKey(u => u.BlogID);
2. 一對(duì)多關(guān)系(one-to-many,文章鏈接)
類圖:
數(shù)據(jù)庫表結(jié)構(gòu):
Entity Framework中實(shí)體關(guān)系的定義:
modelBuilder.Entity<BlogSite>().HasMany(b => b.BlogPosts)
.WithRequired(p => p.BlogSite);
3. 多對(duì)多關(guān)系(many-to-many,文章鏈接)
類圖:
數(shù)據(jù)庫表結(jié)構(gòu):
Entity Framework中實(shí)體關(guān)系的定義:
modelBuilder.Entity<BlogPost>().HasMany(b => b.Categories)
.WithMany(c => c.BlogPosts)
.Map
(
m =>
{
m.MapLeftKey("BlogPostID");
m.MapRightKey("CategoryID");
m.ToTable("BlogPost_Category");
}
);
轉(zhuǎn)載于:https://www.cnblogs.com/wujy/archive/2011/10/29/2228268.html
總結(jié)
以上是生活随笔為你收集整理的Entity Framework 实体关系总结(转)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (转)Web Services使用多态(
- 下一篇: 【ACM】hdu_1862_EXCEL排