VS2015 + SQL Server 反向生成實體模型


本文闡述了對象與數據庫之間映射相關的基本概念,及如何實現VS+SQL Server環境下從關系自動映射到對象的方法。

 

一、ORM簡介

對象關系映射(Object Relational Mapping,簡稱ORM,也稱O/R Mapping)模式,是一種為了解決面向對象與關系數據庫存在的互不匹配的現象的技術。簡單的說,ORM是通過使用描述對象和數據庫之間映射的元數據,將程序中的對象自動持久化到關系數據庫中。

參考:http://www.cnblogs.com/wgbs25673578/p/5140482.html

 

二、ADO.NET Entity Framework

ADO.NET Entity Framework 是微軟以 ADO.NET 為基礎所發展出來的對象關系對應 (ORM) 解決方案,現已經包含在 Visual Studio 2008 Service Pack 1 以及 .NET Framework 3.5 Service Pack 1 中發表。

.NET中的數據訪問,從大的方面來看數據訪問的設計方案基本有如下幾類:
1、DataSet
2、手寫代碼通過ADO.NET2.0連接類與數據庫交互
3、ORM組件

參考:http://www.cnblogs.com/xuf22/articles/5513283.html

 

三、ORM組件:ADO.NET Entity Framework

作為下一代數據訪問的技術領導者。Entity Framework的設計很多地方都保留了高擴展性。其最重要的一個改進在於其映射定義的靈活性。由圖可以看出,使用Entity Framework可以充分的定義與數據庫表映射的實體,並將這個實體直接用於業務邏輯層或作為服務的數據契約。實體設計較其他技術的優勢體現在以下幾方面:創建ComplexType(CSDL部分有討論);EntitySet的繼承。

使用Entity Framework后,可以將實體類的設計工作完全放在EDM的設計過程中,而不再需要手工寫一些大同小異的代碼,並且對這個實體模型(包含於EDM中)可以在運行時修改並生效。另外,開發人員與數據庫直接打交道的次數將大大減少,大部分時間開發人員只需操作實體模型,框架會自動完成對數據庫的操作。

參考:http://www.cnblogs.com/lsxqw2004/archive/2009/05/31/1495240.html

 

四、ADO.NET Entity Framework:Code First

說一下EF從誕生到現在這幾年的發展歷程吧。在EF最初的版本中,作為一個ORM組件其通過EDM文件(里面是一些xml)來配置數據庫與實體類之間的映射,實現數據進出數據庫的控制。最初的版本中只支持Database First,即由已有數據庫結構生成EDM,繼而得到實體類。后來EF在4.0版本起開始支持Model First即先建立EDM,然后生成數據庫。

在4.1版本開始,EF迎來了最大的變化--開始支持Code First模式,值得注意的是Code First不是和Database First或Model First平級的概念,而是和EDM平級的概念。使用Code First不再需要EDM來維護實體與數據庫之間的映射關系,這個映射完全通過代碼來完成,並在程序開始運行時在內存中建立一個映射模型,這也就是Code First這個名稱中Code的含義。

使用Code First一般都是先建立實體然后通過代碼配置實體到數據庫的映射,繼而生成數據庫(如果數據庫已存在,就不需要再生成數據庫,可以直接建立代碼映射模型),這也就是所謂的Model First模式。當然Code First也支持Database First,通過工具由現有數據庫生成實體,及實體映射數據庫的代碼。

參考:http://www.cnblogs.com/lsxqw2004/p/4701979.html

 

五、利用 EntityFramework Reverse POCO Generator 實現 Code First 反向生成實體模型

使用環境:VS2015 + SQL Server

 

1、安裝 EntityFramework Reverse POCO Generator.vsix 

 

2、在VS項目中,引用 EntityFramework

 

3、在VS項目中,新建項


 
新建后,自動生成以下文件:

 

4、安裝 DBContent-tangibleT4EditorPlusModellingToolsVS2015.msi(使DBContent.tt內的代碼高亮顯示)。

 

5、打開 DBContent.tt 和 App.config ,修改配置(注意兩個配置中的連接字符串連接名要保持一致)

 

 

6、保存 DBContent.tt 即可將數據庫關系映射到VS實體模型中(在DBContent.cs中查看)




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM