3 回答

TA貢獻(xiàn)1871條經(jīng)驗 獲得超8個贊
有三種方法可以使模型保持同步。
從設(shè)計器中刪除已修改的表,然后將它們從數(shù)據(jù)庫資源管理器中拖回到設(shè)計器圖面上。我發(fā)現(xiàn),要使其可靠運行,您必須:
一種。在數(shù)據(jù)庫資源管理器中刷新數(shù)據(jù)庫架構(gòu)(右鍵單擊,刷新)
。刪除表后保存設(shè)計器
c。向后拖動表格后再次保存。但是請注意,如果您修改了任何屬性(例如,關(guān)閉關(guān)聯(lián)的child屬性),則顯然會丟失這些修改-您必須再次進(jìn)行修改。
使用SQLMetal從數(shù)據(jù)庫重新生成架構(gòu)。我看過許多博客文章,這些文章顯示了如何編寫腳本。
直接在DBML的“屬性”窗格中進(jìn)行更改。這適用于簡單的更改,例如允許字段為空。
在Visual Studio 2015、2017或2019中,默認(rèn)情況下未安裝DBML設(shè)計器。您必須關(guān)閉VS,啟動VS安裝程序并修改安裝。在LINQ到SQL工具是必須安裝的功能。對于VS 2017/2019,您可以在單個組件>代碼工具下找到它。

TA貢獻(xiàn)1835條經(jīng)驗 獲得超7個贊
我們使用一個自定義的書面T4模板,該模板可以動態(tài)查詢所有.DBML文件中每個表的information_schema模型,然后使用數(shù)據(jù)庫中的新架構(gòu)信息覆蓋.DBML文件的某些部分。我高度建議實施這樣的解決方案-它節(jié)省了我很多時間,并且與刪除表并在模型中重新添加表不同,您可以保留關(guān)聯(lián)。使用此解決方案,當(dāng)架構(gòu)更改時,您將獲得編譯時錯誤。但是,您要確保您使用的是版本控制系統(tǒng),因為差異確實很方便。如果您正在使用數(shù)據(jù)庫模式優(yōu)先方法進(jìn)行開發(fā),那么這是一個很好的解決方案,效果很好。當(dāng)然,我不能共享我公司的代碼,因此您自己編寫自己的代碼。但是,如果您了解一些Linq-to-XML并可以在該項目上上學(xué),那么您可以到達(dá)想要的地方。
- 3 回答
- 0 關(guān)注
- 640 瀏覽
添加回答
舉報