2

我可以直接針對SQL數據庫項目使用EF Reverse POCO生成器嗎?針對SQL數據庫項目的EF反向POCO?

我將我的SQL數據庫定義保留在「Visual Studio SQL數據庫項目」中,它爲我提供了一些很好的版本控制功能,模式比較和一些漂亮的部署功能。有時我會在開發期間從臨時數據庫更新項目文件,但版本控制項目始終是任何版本的「真相」。

如果我使用EntityFramework Reverse POCO Code First Generator,我是否需要通過實際的SQL數據庫對我的「真相」進行往返以生成POCO?或者我可以在VS數據庫項目中使用POCO生成器嗎?

我知道數據庫項目的模式在各種VS數據庫交互中有一種元存在。例如,它會在SQL Server對象資源管理器中顯示一個真實的數據庫圖標。但我不知道代碼優先的生成器是否可以利用類似的功能來查詢元數據。

+0

目前(VS 2013)這是不可能的。 BTW這個問題被問到在下面的鏈接,但目前還沒有任何有用的答案:http://stackoverflow.com/questions/19392636/generate-entity-framework-model-from-visual-studio-database-project – Keith

+0

謝謝基思。當然,你提到的問題與我希望使用的工具沒有直接關係,它已經非常接近解決方案。我不認爲這個工具甚至在線程中被提及,除非它是EF Power Tools的一部分(我認爲它不是)。所以我想知道,你是否知道反向POCO發生器沒有這種能力? – shannon

+1

正確,它目前沒有這種能力。這將是一個很棒的功能! – Keith

回答

1

在GitHub上有一個名爲SqlSharpener的項目,可作爲NuGet包使用。

說明:

解析SQL文件創建元對象層次與您可以 生成C#代碼,如存儲過程或包裝實體框架 代碼優先實體。通過手動或通過調用 包括預編譯的T4模板中的一個來生成。

而不是從數據庫中生成代碼或使用重型 抽象層,可能會錯過,直到運行時的數據庫和 數據訪問層之間的差異,這個項目旨在提供一個非常 快速和簡單的數據訪問層是在設計時使用SQL文件作爲真實來源(例如在SSDT 項目中找到的那些文件)在設計時產生的 。

我不能擔保,因爲我從來沒有使用過它,但它似乎很有前途。

+0

令人敬畏的發現,謝謝基思。我將在接下來的幾天對此進行調查並在此回覆。 – shannon

+0

我還應該提到,在公開討論MS正在考慮將此功能添加到VS 2015之後,我得到Rowan Miller的印象。 – shannon

+1

@shannon,我是SqlSharpener的創建者。你一定能夠做你所要求的使用它。我添加了一個[T4模板](https://github.com/aeslinger0/sqlsharpener/blob/master/examples/SimpleExample/SimpleExample。DataLayer/EFCodeFirstExample.tt)[示例解決方案](https://github.com/aeslinger0/sqlsharpener/tree/master/examples/SimpleExample),您可以使用它來生成實體。如果有一個沒有涉及的用例,請隨時[創建問題](https://github.com/aeslinger0/sqlsharpener/issues),我會看看我能否解釋它。 – adam0101

相關問題