2013-03-06 28 views
0

我是實體框架的新手。我已經有了現有的數據庫。我設法映射我的數據庫表並生成c#類,但我有幾個問題。使用實體數據模型映射表

  1. 有什麼辦法可以爲幾個表生成單個文件的代碼? 對於我來說,在 單個文件中包含與用戶相關的類將非常有幫助。
  2. 我的下一個問題是指從數據庫更新模型。當我 更改數據庫中的字段名稱和更新模型時,我有刷新後添加的新字段 。不幸的是老域仍然 仍然在我的實體,我不得不手動刪除它。

    是否有任何解決方案告訴VS從實體中刪除這些無效字段?

謝謝!

回答

0

1)您的實際代碼文件是從t4模板生成的。你可以使用你想要生成的模板。爲此,請右鍵單擊.edmx文件中的畫布並選擇「添加代碼生成項目」。它會在您的項目中添加幾個* .t4文件。 nuget包管理器中有一些模板可用。您甚至可以手動編輯它們(儘管它們很難理解)

2)您可以刪除整個表格,然後在從數據庫更新模型時重新添加它。

另外,請看「代碼優先」方法。您基本上創建了一堆poco類,然後創建了DbContext子類:

public class MyContext : DbContext 
{ 
    public DbSet<MyEntity> MyEntities { get; set; } 
    public DbSet<MyCoolEntity> MyCoolEntities { get; set; } 
    /* ... */ 
} 

不需要.edmx文件。實體框架將爲您處理數據庫。

+0

謝謝你的回答。我已經嘗試過Code First方法,但是我的模型可能會改變很多次,因爲我最近開始開發我的應用程序。這會導致錯誤,當我嘗試使用更改後的模型進行操作時。我也知道代碼第一次數據遷移,但我還沒有嘗試過。 – Divh 2013-03-06 18:29:15

+0

如果您喜歡,請將我的答案標記爲已接受。 代碼首先支持[Migrations](http://msdn.microsoft.com/en-US/data/jj591621),它允許您無縫地更新數據庫 – 2013-03-06 18:38:34