2011-05-25 104 views
8

是否有模板或工具直接從數據庫生成代碼?我想使用模型第一種方案,但不希望.edmx文件進行映射。有一個有很多表的數據庫,我不想寫所有的類(我很懶)。那麼,是否有一個模板來生成代碼並設置註釋/使用流利的API來自動地從現有數據庫中定義關係等等?EF 4.1模型第一代碼生成工具或模板

這在以下情況下也會有所幫助。比方說,我正在使用POCO使用.edmx,現在我不想在.edmx文件中使用映射。我想要代碼中的映射。如果有一個工具或一個模板來從現有數據庫的代碼中生成映射,那將是非常好的。

我開始學習EF 4.1。我認爲「代碼首先在版本2中成爲模型,即在數據庫被創建/發佈(在版本1中)之後並且需要一些改變」。這是真的嗎?我很想聽聽一些意見。謝謝。

+1

+1爲你的懶惰 – 2011-05-27 04:11:20

回答

8

查看剛剛發佈的EF Power Tools CTP1的'Reverse Engineer Code First'功能。

+0

這正是我所需要的。它雖然缺乏一些功能,但嘿它是第一個版本。謝謝。 – Jonna 2011-05-25 00:58:10

0

對於生成類,您可以使用POCO t4模板生成。看看this詳細的鏈接,這將有助於你開始。這樣你將得到所有生成的類。

對於映射,您可以對實體框架使用純代碼風格,但使用POCO模板生成類和上下文比自己創建映射具有更多的優勢。想象一下,添加新表格或修改表格會涉及更多的工作。但我一定會很想知道是否有任何映射工具。

+0

我不想對映射.edmx文件。我想在代碼中使用它。 – Jonna 2011-05-25 00:29:04

+0

我目前使用.edmx與甲骨文,這是一種痛苦,因爲商店生成的身份插入丟失,如果我做任何修改並保存它。如果映射位於代碼中,我不必更改它。我可以在代碼中擁有比.edmx文件更多的控制權。 – Jonna 2011-05-25 00:40:41

+0

耶同意了。我知道如何獲得我自己使用的類(即使我很懶)。不知道任何映射工具。很高興知道戴夫的回答 – DotNetInfo 2011-05-25 01:37:45

0

使用Oracle數據庫時,您可能正在使用EF提供程序Devart dotConnect for Oracle。在這種情況下,以下信息將幫助您選擇該工具。

實體框架電動工具的第一個版本還包含通過現有數據庫的流暢映射生成Code-First模型的功能。雖然有用,但這種功能在其靈活性方面受到限制:開發人員只能設置連接字符串;接下來,從用​​戶可用的所有數據庫對象中生成類。這並不是非常方便,因爲在Oracle中,例如,包含數百甚至數千個表的大量模式可供用戶使用。

Devart ADO.NET提供商的用戶可以利用Entity Developer的強大的設計時開發能力,這是與Devart提供商一起交付的EF設計人員,而不是訴諸於這種有限的功能。 EF Power Tools中提供的Database-First方法與Model-First方法之間的選擇也是可能的,在該方法中,EDM設計器中將創建Code-First類。

相較於EF電動工具,數據庫-First方法EF代碼優先模式的發展也允許選擇必須在模型中可用的對象,類名和屬性等的產生設置命名規則上。此外,最終的模型可以在設計者中進行修改和改進。

爲了更好地滿足開發人員的需求,C#和VB的Entity Developer中的Code-First代碼生成基於易於訪問的T4模板,並且可以在Entity Developer中包含的功能豐富的T4 Editor中進行修改。

有關代碼優先發展實體開發的更多信息,請參見「實體開發 - EF代碼優先的DbContext模板」 http://www.devart.com/blogs/dotconnect/index.php/entity-developer-ef-code-first-dbcontext-template.html