SPMetal語法用法

2022-07-15 03:12:12 字數 3177 閱讀 3335

spmetal 是一類用於生成實體類的命令列工具,這些類可向 microsoft sharepoint foundation 內容資料庫提供物件導向的介面。雖然這些類主要用於 linq to sharepoint 查詢,但它們也可用於通過利用併發衝突解決方法來新增、刪除和更改列表項。此外,還可將它們作為用於引用內容的常規 sharepoint foundation 物件模型的替代項使用。

此工具隨 sharepoint foundation 附帶並位於 %programfiles%\common files\microsoft shared\web server extensions\14\bin 中。

spmetal 在 microsoft visual studio 中通常會作為預先生成命令執行,這是因為它生成的**通常是包含乙個新的**型別(其本身在開發周期中將會演化)的解決方案的一部分。每當執行 spmetal 時,它都會覆蓋自身生成的檔案,因此對於給定的輸出路徑和給定的**,您不應對這些檔案進行更改。它生成的類為 partial,因此您可以通過手動建立的單獨的**檔案向這些類新增成員。

如果您的解決方案基於現有**型別(如 sharepoint foundation 中包含的工作組**),並且它只引用此類**中始終存在的列表和這些列表中始終存在的字段(列),則您可以僅執行一次 spmetal 並對將不會被覆蓋的生成的檔案進行更改。

有關使用 spmetal 的例項的詳細資訊,請參閱如何:使用 spmetal。

基本語法

spmetal 將使用其他 windows 命令列工具的基本語法:

spmetal [options]
每個選項的前面都有乙個左斜線。大多數選項都需要值,在此情況下,選項名後跟乙個冒號,而值緊隨冒號之後:

spmetal /option1 /option2:value /option3:"value with a space"
選項可以按任意順序排列。雖然並不是每個選項都是必需的,但如果包含乙個採用值的選項,則必須為該選項指定乙個值。如果值包含空格,則必須用引號 (") 將整個值引起來。

若單獨使用「/?」選項,則將向標準輸出顯示有關該工具的一些簡略幫助。

命令列工具

下表列出了各個選項及其用途。

選項值定義

示例備註

web實體類已對其資料進行建模的**的完整的絕對 url。

必選項。可以在伺服器名稱中包含埠號;例如,/web:http://contososerver:5555/marketing。

不要在 url 中包含主頁或任何其他頁。

code

輸出檔案的相對或絕對路徑和檔名。

/code:marketingsite.cs

如果未使用此選項,則生成的**將傳輸到標準輸出。

如果未指定副檔名或副檔名不為「cs」或「vb」,則必須使用 language 選項。

此外,還可將檔名(不包括副檔名)用作從 datacontext 派生的類的名稱的開頭;在此示例中,派生的類名為marketingsitedatacontext。由於派生的類表示的是整個**的列表和資料,因此請選擇乙個能夠表達此含義的檔名。(可以使用 spmetal 引數 xml 檔案重寫這一命名行為。)

language

生成的**的程式語言。

/language:csharp

可能的值僅為「csharp」和「vb」。

如果 code 選項的值採用「cs」或「vb」作為副檔名,則 spmetal 可以推斷語言,而無需使用 language 選項。

namespace

包含實體類宣告的命名空間。

/namespace:contoso.teamactivityreports

如果未使用此選項,則生成的**將不會指定任何命名空間,並且編譯的程式集會將 visual studio 專案的屬性中指定的預設命名空間視為生成的類的命名空間。

useremoteapi

沒有值。

/useremoteapi

此選項指示,web 引數的值指向的伺服器不是執行 spmetal 的伺服器。在對 sharepoint 進行聯機部署時,可以使用此引數對要將解決方案作為沙盒解決方案上載到的**生成**。

user

在其上下文中執行 spmetal 的使用者。

/user:contoso\bob

如果您不希望在自己的上下文中執行 spmetal,請使用此選項。指定域。

password

user 選項中指定的使用者的密碼。

/password:$5u+ryz

與 user 選項結合使用。

serialization

指定用於例項化生成的類的物件是否是可序列化的。

/serialization:unidirectional

可能的值僅為「unidirectional」和「none」。如果您希望這些物件是可序列化的,請指定「unidirectional」。spmetal 會將 system.runtime.serialization 命名空間中的屬性新增到類和屬性宣告中,並會新增針對反序列化事件的處理程式。

如果未使用此選項,則假定為「none」。

parameters

標識 xml 檔案的路徑和名稱,該檔案包含 spmetal 預設設定重寫。

/parameters:marketingsite.xml

由於您通常不會對不同的**重用同一引數 xml 檔案,因此請為該檔案指定與**相同的名稱。

有關引數檔案的詳細資訊,請參閱 用引數 xml 檔案替代 spmetal 預設值。

示例生成 c# **:

spmetal /web:http://contososerver/marketing /code:marketingsite.cs
使用自定義引數設定生成 visual basic **:

spmetal /web:http://contososerver/marketing /code:marketingsite.vb /parameters:marketingsite.xml
從指定的使用者上下文生成 visual basic **:

spmetal /web:http://contososerver/marketing /code:marketingsite.vb /user:contoso\sally /password:7yj38d
請參閱

sed 語法 用法

sed command filename s 只顯示結果而不修改檔案。1 sed 2,5d file 顯示檔案file,除去2 5行,但行數超過檔案實際行數時不會報錯。sed 10 1 4 d file 顯示檔案file,除去包含101 104的行。sed 2,d file 顯示檔案,只顯示第一行。...

FreeMarker語法用法總結

freemarker是一種模板引擎,通過定義的模板和資料來生成文字 1.定義並使用乙個變數,注意布林值後面必須要跟 c assign num 10 assign name 字串 assign b true assign map assign list 1,3,5 2.條件判斷 if conditio...

pymysql語法 pymysql用法

pymysql用法 一 基礎用法 匯入 import pymysql 連線資料庫 conn pymysql.connect host user password database 建立游標 cur conn.cursor 括號內沒有任何設定 查詢後輸出的結果是元組形式 括號內新增cursor pym...