SqlMetal是跟随VS釋出的一個自動工具,可以用來生成資料庫的Linq代碼。
這是中文版的幫助檔案。
SqlMetal [選項] [<輸入檔案>]
為 .NET Framework 的 LINQ to SQL 元件生成代碼和映射。SqlMetal 能夠: - 依據資料庫生成源代碼及映射屬性或映射檔案。 - 依據資料庫生成中間 dbml 檔案以進行自定義。 - 依據 dbml 檔案生成代碼及映射屬性或映射檔案。
選項: /server:<名稱> 資料庫伺服器名稱。 /database:<名稱> 伺服器上的資料庫目錄。 /user:<名稱> 登入使用者 ID (預設值: 使用 Windows 身份驗證)。 /password:<密碼> 登入密碼(預設值: 使用 Windows 身份驗證)。 /conn:<連接配接字元串> 資料庫連接配接字元串。不能将連接配接字元串與 /server、/database、/user 或 /password 選項一起使用。 /timeout:<秒數> 要在 SqlMetal 通路資料庫時使用的逾時值(預設值: 0,表示無限期)。
/views 提取資料庫視圖。 /functions 提取資料庫函數。 /sprocs 提取存儲過程。
/dbml[:檔案] 輸出為 dbml。不能與 /map 選項一起使用。 /code[:檔案] 輸出為源代碼。不能與 /dbml 選項一起使用。 /map[:檔案] 生成映射檔案而不是屬性。不能與 /dbml 選項一起使用。
/language:<語言> 源代碼語言: VB 或 C# (預設值: 派生自代碼檔案名的擴充名)。 /namespace:<名稱> 生成的代碼的命名空間(預設值: 無命名空間)。 /context:<類型> 資料上下文類的名稱(預設值: 派生自資料庫名稱)。 /entitybase:<類型> 生成的代碼中的實體類的基類(預設值: 實體沒有基類)。 /pluralize 使用英語語言規則自動設定類和成員名稱的單複數形式。 /serialization:<選項> 生成可序列化的類: None 或 Unidirectional (預設值: None)。 /provider:<類型> 提供程式類型: SQLCompact、SQL2000、SQL2005 或 SQL2008。(預設值: 提供程式是在運作時确定的)。
<輸入檔案> 可以是 SqlExpress mdf 檔案、SqlCE sdf 檔案或 dbml 中間檔案。
通過 SqlServer 建立代碼: SqlMetal /server:myserver /database:northwind /code:nwind.cs /namespace:nwind
通過 SqlServer 生成中間 dbml 檔案: SqlMetal /server:myserver /database:northwind /dbml:northwind.dbml /namespace:nwind
通過 dbml 生成包含外部映射的代碼: SqlMetal /code:nwind.cs /map:nwind.map northwind.dbml
通過 SqlCE sdf 檔案生成 dbml: SqlMetal /dbml:northwind.dbml northwind.sdf
通過 SqlExpress 本地伺服器生成 dbml: SqlMetal /server:sqlexpress /database:northwind /dbml:northwind.dbml
通過在指令行中使用連接配接字元串生成 dbml: SqlMetal /conn:"server='myserver'; database='northwind'" /dbml:northwind.dbml
例子: 生成包含存儲過程的Dbml檔案
C:temp>sqlmetal /server:localhost /database:tsx /dbml:tsx.dbml /namespace:tsx /sprocs
IF $(ConfigurationName) == VO "%PROGRAMFILES%\Microsoft SDKs\Windows\v6.0A\Bin\sqlmetal"
/server:DETIAN-SCL07H66 /database:test /user:sa /password:hello /dbml:$(ProjectDir)LinqData\DAO.dbml /sprocs /functions /entitybase:System.Data.Linq.DataContext
/namespace:LinqData /code:$(ProjectDir)LinqData\DAO.designer.cs /language:csharp /context:DAODataContext
/entitybase:System.Data.Linq.DataContext /serialization:Unidirectional $(ProjectDir)LinqData\DAO.dbml