Entity Framework的三種開發模式
一、模型優 EF Designer to a New Database (Model First)
1、在建模建立主從表關聯時,子表使用主表表名+關鍵列作為其關聯字段,如Post對象的BlogID
2、導航屬性需要根據實際情況設置復數,否則默認與表名相同的單數形式,如上圖的Blog對象的Posts
3、對象實體的集合名稱在VS2012中文版時會自動變為Blog集,注意修改為Blogs
二、數據庫優先 EF Designer to an Existing Database (Database First)
三、代碼優先 Code First to a New Database
public class Blog { public int ID { get; set; } public string Name { get; set; } public virtual List<Post> Posts { get; set; } }
public class Post { public int ID { get; set; } public string Title { get; set; } public string Content { get; set; } //public int BlogID { get; set; } public virtual Blog Blog { get; set; } }
使用代碼優先時,應顯示定義關聯屬性,如沒有顯式定義,如上圖屬性BlogID,則生成數據庫時會根據其關系增加“表名_關鍵列”格式的關聯屬性列,如下圖Blog_ID
實體對象發生變化時可使用代碼優先遷移工具實現,Tools -> Library Package Manager -> Package Manager Console,
運行命令Enable-Migrations、Add-Migration、Update-Database三步實現
Code First to an Existing Database 參考 http://msdn.microsoft.com/en-us/data/jj200620
利用EF Power Tools擴展工具實現數據庫到實體對象的工程反向。