2012-08-29 20 views
1

我剛開始研究微軟的實體框架(EF),以取代我們現有的Linq2Sql數據訪問庫。從實體框架中提取類對象

在下面的一些示例項目中,我遇到了「添加代碼生成項」(設計器表面上的上下文菜單),特別是'EF 5.x DbContext生成器'模板。

該模板爲模型生成一些很好的簡單(POCO)類對象。

在我的整體結構中,我想將這些類提取/移動到不同的項目/程序集中,以便我可以從通用存儲庫中引用它們,即我想將應用程序的數據訪問層與EF實體數據模型。

這是可能的,還是我需要爲每個類對象(例如.ToDomainModel(),.FromDomainModel())手動創建映射。

道歉,如果這是一個愚蠢的問題 - 在我的辯護我是新來的EF,也仍然掌握數據驅動域的概念。

回答

1

這是可能的,但你會失去一部分自動魔法。自動生成的項目是一個T4模板。如果你打開它,你會在.edmx文件的起始位置找到相對路徑。如果您移動模板,則只需相應地更新路徑即可指向要用於生成的.edmx文件。

缺點是,當保存.edmx文件時(但我沒有搜索解決方案,所以也許可以使其工作),將模板移動到其他地方會自動重新生成類別。因此,必須在每次保存對EDMX文件的更改後手動運行自定義工具(.tt文件上下文菜單中的項目)。

+0

謝謝拉迪斯拉夫。我認爲在我的項目中最適合的解決方案是實體框架的Code First模型(我剛剛「發現」了此選項)。 – Neilski