3 回答

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

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