2013-03-22 53 views
-1

在我們的CRM環境中,我們爲自定義參數設置了自定義實體類型,其中實體包含名稱,類型和值。我需要使用asp和C#在Web應用程序中獲取這些「參數」中的一個來完成一些數學運算。我怎樣才能使用實體的ID在我的aspx.cs文件中檢索此實體的值和類型字段,以便我可以創建一個與自定義參數實體相對應的c#變量。從MSCRM中使用C#的自定義實體中檢索字段值4

回答

0

第一種方式

您可以連接到CRM Web Service,這是一個的.asmx,並從那裏取回你的實體。只需將其添加爲web reference即可。根據我的經驗,將其作爲服務參考添加是麻煩的,但添加爲Web引用不是(因爲「添加服務引用」的東西是用於WCF和「添加Web引用」已從那裏開始.asmx )。

順便說一句,如果你是用來通過寫作插件和自定義工作流活動使用CRM SDK您可能會注意到:

  • 引擎蓋下的CRM SDK組件實際上是調用CRM Web服務反正...他們只是用一種很好的方式來包裝它,以促進插件的開發
  • 一旦你添加了Web服務,你將有一大堆方法可供選擇,並且你的實體現在是類您的ASP.NET應用程序。由於VS將導入服務的WSDL,因此它會將您的自定義實體識別爲一等公民並生成相應的類(即,您不需要與DynamicEntity進行大量的交易,不像您的插件&定製工作流程組合開發)

如果您對CRM中的實體進行更改(例如,添加字段,創建新實體等)以使您的應用程序同步,那麼更新/刷新您的Web引用也是一種很好的做法。如果您只使用一組狹窄的實體(在這種情況下聽起來像這樣),並且它們不會改變,但這不是必需的,但仍然是一種好的做法。

第二種方式

你可以直接把它弄出來你_MSCRM數據庫。

如果您想要轉到原始表格,您的實體將有兩個表格:Base和ExtensionBase。您想要的數據(如果它是您針對實體定義的屬性)將位於ExtensionBase表中。如果你想使用它,也會有一個視圖加入Base和ExtensionBase表。

你也可以查詢過濾視圖,但如果你這樣做,你需要確保其ASP.NET應用程序運行的帳戶(所以當部署到IIS,這將是應用程序池標識)訪問CRM因爲違反過濾視圖會針對主叫用戶運行CRM安全檢查。

此外,請注意直接進入數據庫表或視圖在技術上不受支持。違反過濾視圖應該是可以的。

我會建議走第一條路,但我已經看到兩種方法在過去完成,兩者都應該工作。

+0

我連接到web服務,以前的工作是由另一個程序員完成的,但他直接通過一些瘋狂的sql查詢id與數據庫交互,而不是處理。我已經更新了Web服務,但我只是不熟悉如何使用Web引用檢索自定義實體的字段。我有點尋找一個例子來檢索特定實體的字段值(在這種情況下,服務合同平均速率),這是我創建的自定義參數參數實體。 – Aaron 2013-03-22 16:51:24

+0

我的老闆寧願不直接處理數據庫,因爲微軟顯然認爲它是不好的做法。 – Aaron 2013-03-22 16:52:16

+0

我看到我可以做crm。然後我開始鍵入檢索和intellisense顯示這麼多方法其荒謬。 – Aaron 2013-03-22 17:53:04

相關問題