2012-04-12 238 views
56

我有一個現有的數據庫。我希望有一種方法可以從這個數據庫生成類文件。但是,我似乎看到很多從類文件生成數據庫。實體框架 - 生成類

有沒有辦法從使用實體框架現有的數據庫生成的類文件?如果是這樣如何?有人可以指點我一個教程嗎?

+0

看到這個http://stackoverflow.com/questions/9876619/ entity-framework-5-0-beta-will-a-dbcontext-code-generation-template-be-provide – AmirHossein 2012-11-03 19:57:39

回答

113

1)首先,您需要使用您的數據庫,生成EDMX模型。要做到這一點,您應該添加新的項目到您的項目中:

  • 從模板列表中選擇ADO.NET Entity Data Model
  • 在Choose Model Contents頁面上,選擇Generate from Database選項並點擊Next。
  • 選擇您的數據庫。
  • 在選擇您的數據庫對象頁面上,檢查表格。如果需要,請選擇視圖或存儲過程。

所以,現在你有Model1.edmx文件在您的項目。

2)生成類中使用你的模型:

  • 打開EDMX模型設計。
  • 在設計表面右鍵單擊 - >添加代碼生成項目...
  • 選擇在線模板。
  • 選擇EF 4.x DbContext Generator for C#
  • 點擊'添加'。

注意到有兩個項目添加到您的項目:

  • Model1.tt(這個模板在你的模型生成非常簡單的POCO類爲每個實體)
  • Model1.Context.tt(此模板生成一個派生的DbContext到使用用於查詢和保存數據)

3)讀/寫數據例如:

var dbContext = new YourModelClass(); //class derived from DbContext 
var contacts = from c in dbContext.Contacts select c; //read data 
contacts.FirstOrDefault().FirstName = "Alex"; //edit data 
dbContext.SaveChanges(); //save data to DB 

不要忘了你需要4.x版本的EntityFramework。您可以在此下載EF 4.1:Entity Framework 4.1

+0

我按照你的指示,我創建了'Model1.tt'和'Model1.Context.tt',但是,我無法理解我想怎麼做3步。你能幫我嗎?我編譯,看看我是否有任何結果,但沒有運氣=( – 2013-02-18 13:46:38

+0

你有沒有檢查過,如果你的POCO類和上下文已經生成?或者你在步驟2有一些錯誤? – algreat 2013-02-18 14:14:16

+0

都可以,我使用Nuget創建了對EF的引用沒有錯誤,構建成功 – 2013-02-18 14:28:57

15

我發現非常好的解決方案。微軟發佈了實體框架電動工具的測試版本:Entity Framework Power Tools Beta 2

在那裏,您可以在某些點擊中爲現有數據庫生成POCO類,派生DbContext和代碼優先映射。這是很不錯的!

安裝後一些上下文菜單選項將被添加到您的Visual Studio。

右鍵單擊C#項目。選擇實體框架帶>逆向工程的Code First(生成POCO類,派生現有數據庫的DbContext和代碼首先映射):

Visual Studio Context Menu

然後選擇您的數據庫,然後單擊確定。就這樣!這很容易。

1
  1. 打開EDMX模型
  2. 右鍵 - >更新模型從瀏覽器 - >存儲過程 - >選擇您的存儲過程 - >完成
  3. 看到模型瀏覽器彈出旁邊Solution Explorer中。
  4. 到功能導入 - >右鍵單擊您的存儲過程 - >添加功能導入
  5. 選擇返回下的實體集合 - >從下拉菜單中選擇你的實體名稱下來
  6. 構建解決方案。
+0

這個過程也是比較好的。例如你在做什麼(一步一步地),爲什麼? – 2014-06-04 07:50:00