2009-09-15 72 views
0

我想要有一個數據結構描述的單一來源。從LINQ-TO-SQL DBML文件生成表/視圖模式

有些人問,DBML文件在數據庫中更改時是否可以刷新。我的做法是愚蠢但常見,打開它,刪除全部,然後再拖放。 我聽說有一些第三方做這些伎倆。

但我在想,有什麼辦法來逆轉操作?

在hibernate中,有一種方法可以從XML數據結構中構建目標數據庫的DDL。

DBML文件可能包含重建數據庫DDL的所有信息嗎? (例如,具有VIEW SQL和存儲過程代碼的副本),並即時創建「創建腳本」(如在SQL Server企業管理器中執行的操作)

回答

2

DBML文件只包含表,列,外部關鍵約束和主鍵。視圖以與表格相同的方式存儲,因此唯一存儲的信息是視圖的名稱和返回的列(w/type,nullability等)。視圖定義本身不存儲,因此不可能從dbml文件中提取。

如果使用L2S設計和數據建模的基本DBML文件,你會失去:

  • 非PK索引/鍵
  • 視圖定義
  • 存儲過程定義
  • 函數定義
  • 別名類型
  • ...等...

也就是說,如果你想爲你的DBML中的表defs,FKs,PKs等生成SQL-DDL,那麼Visual Studio的加載項可以爲你做到這一點。 (它支持同步雙向DB - > DBML,並DBML - > SQL-DDL - > DB你可以下載它,並從試用許可證:
http://www.huagati.com/dbmltools/

+0

我下載這個工具,這是我從得到的輸出它創建表我想爲'創建表。(,,,,,,)的SQL腳本;'不是很有幫助。 – 2010-06-10 20:43:11