2
我的問題是我必須從現有的數據庫中導入我的實體。 DB具有架構,並且一些表在不同的架構中共享相同的名稱。當這生成模型時,我得到MyTable和MyTable1(如果這就是他們所稱的)。如何用dbSchema實現類名前綴實體框架
我想要做的是將它們命名爲MyTable,如果它使用dbo模式,但是如果它是任何其他模式,則使用模式名稱作爲前綴eg。 MySchema_MyTable。
我知道我可以通過在設計器中更改名稱來手動執行此操作,但這可能不僅僅由我自己完成,更多的表和模式將添加到此數據庫中。所以我想強制執行這個命名約定。
我在想最好的方法是使用t4模板。我可以很容易地改變它來添加一個前綴,這個工作,但我不知道如何獲得該特定實體的數據庫模式名稱。 T4模板不帶智能感知。
我將不勝感激您的建議。
謝謝,
你的問題不清楚給我。你是否想編寫一個T4模板來遍歷數據庫中的所有表,確定它們的「完全作用域」名稱,包括模式名稱,然後使用這些完全作用域名稱生成代碼?另外,你使用的是什麼數據庫? – 2012-07-06 19:22:10
是的,簡而言之,我希望它遍歷數據庫中的所有表並創建一個表示每個表的類。這些類的名稱是「<數據庫模式名稱> _
看看[T4模板生成枚舉](http://stackoverflow.com/a/4480173/1380680)和[此博客文章](http://blog.sqlauthority.com/2009/06/17/SQL服務器列表,架構名稱和表名換數據庫/)。如果將兩者結合起來,那麼在使用SQL Server的情況下,您應該能夠獲得所需的內容,或者針對特定的數據庫調整它。這些幫助有用? – 2012-07-08 18:51:38
回答
您可以使用TiraggoEdmx獲取數據庫信息。請參閱http://brewdawg.github.io/Tiraggo.Edmx/,您可以通過Visual Studio中的NuGet安裝它,並且它提供Microsoft從您隱藏的EDMX文件中的所有元數據,非常簡單,效果很好。
來源
2013-09-23 01:04:15
相關問題