我期待在我現有的項目中實現實體框架版本4.3.1,它不會跟隨此EF。數據庫已經開發,目前正在使用的應用ado.net。在這種情況下,如何我從EF開始工作,是數據庫優先,代碼優先。實體框架與現有數據庫
6
A
回答
13
即使在數據庫已經存在我仍然使用代碼優先的方法,使用註釋映射表,因爲域比EDMX文件更有組織。如果有許多表格,那麼可視化的EDMX就會變得毫無用處,因爲設計將會遍佈各處的數據和連接。
兩個步驟,你可以用這種方法開始:
1)創建一個域模型類,Customer
例如,使用數據說明其映射到表:
[Table("tbl_cust")]
public class Customer
{
[Key]
[Column("cust_id")]
public int CustomerId { get; set; }
[Column("cust_name")]
public string Name { get; set; }
// Add other properties below
}
2)創建上下文類從DbContext
派生並設置DbSet<T>
屬性每個模型,我們只有一個在我們的例子這樣:
public class MyApplicationContext: DbContext
{
public MyApplicationContext() : base("name=ConnectionStringName") { }
public DbSet<Customer> Customers { get; set; }
}
現在在你的代碼可以實例化派生類DbContext
和使用LINQ進行查詢的任何地方:
var _db = new MyApplicationContext();
var customer = _db.Customers.Where(c => c.CustomerId == 37).FirstOrDefault();
不要忘記添加一個引用的EntityFramework裝配使用的NuGet。
祝你好運。
1
由於您的數據庫已經存在,顯而易見的選擇是數據庫第一。如果數據庫的設計具有常識,那麼它(大部分)的效果很好。
0
我想問題是如果你想使用EF設計器來可視化你的數據庫或不。既然你在看EF 4.3.1(實際上你應該看EF5不是4.3.1 - EF5是最新版本)我假設你不關心設計師。在這種情況下,您可以使用EF Power Tools對數據庫進行逆向工程。這將創建一組將匹配您的數據庫的類。請注意,由於數據庫已經創建,EF將無法檢測到類中的更改(與Code First創建的數據庫相比,當額外信息存儲在數據庫中且EF能夠確定模型是否已更改時)。請務必閱讀此blog post - 它包含許多細節,您可能會發現有助於做出決定。 如果你關心能夠在設計師中看到你的模型,你可以使用VS來逆向工程DB。如果你使用VS2012,你將默認獲得EF5和DBContext。與使用Code First的區別在於,不是根據您的類建立模型EF需求,而是將模型保存在作爲項目一部分的EDMX文件中(並用於爲您生成代碼)
相關問題
- 1. 實體框架與現有數據庫 - 最新方法?
- 2. 數據庫與實體框架
- 3. 實體框架與數據庫優先
- 4. 實體框架,數據庫
- 5. 沒有數據庫的實體框架
- 6. 沒有數據庫的實體框架?
- 7. 實體框架:現有數據庫 - >數據模型 - >新數據庫
- 8. 實體框架從現有數據庫創建核心模型
- 9. 實體框架自動遷移現有的數據庫
- 10. 實體框架4.1和現有的數據庫
- 11. 實體框架重新添加現有數據庫對象
- 12. 遠程現有數據庫的實體框架
- 13. 實體框架代碼優先和現有數據庫
- 14. 實體框架4.3現有數據庫的遷移問題
- 15. 使用現有數據庫時熟悉實體框架
- 16. 實體框架代碼先用現有的數據庫
- 17. 實體框架嚮導沒有出現在Oracle數據庫
- 18. 是否有人使用實體框架與Oracle數據庫?
- 19. 如何使用實體框架實現數據庫獨立性
- 20. 實體框架:從數據庫生成時實現接口
- 21. 現有的Azure數據庫與實體框架6阿爾法2
- 22. 使用實體框架與現有的業務層和數據庫
- 23. 將實體框架架構與數據庫進行比較
- 24. 實體框架數據上下文與數據庫不同步?
- 25. 實體框架+優勢數據庫:UDF
- 26. 實體框架4.1 - 交換數據庫
- 27. 刪除數據庫。實體框架
- 28. 備份數據庫mdf&實體框架
- 29. 未創建實體框架數據庫
- 30. 實體框架和數據庫支持
感謝所有的真棒解決方案。我想我需要先與數據庫首先,即使我有興趣使用代碼第一次通過反向工程師代碼first.I嘗試代碼第一,但沒有運氣它不創建EF類和失敗,也許我的數據庫設計得不是很好。失敗的其他原因? – 2013-04-11 16:07:59
你是什麼意思「它沒有創建EF類」? – 2013-04-11 16:57:57
by EF Classes我的意思是說表的Domain類,模型文件夾。我沒有看到任何填充後,我做了反向工程師的代碼first.I以下鏈接http://msdn.microsoft.com/en -us/data/jj200620.aspx – 2013-04-11 17:11:45