日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

使用.NET程序集作为Business Data Connectivity数据源(二)

發布時間:2025/3/15 asp.net 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用.NET程序集作为Business Data Connectivity数据源(二) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

歡迎回來!希望你已經通過跟隨上一次我們介紹的如何在Visual Studio 2010中構建業務數據連接服務模型中的步驟成功創建了你自己的Entity,并已經部署到SharePoint上。

本次我們將繼續擴展我們的BCS模型。我們將在 department實體上創建SpecificFinder和IdEnumerator方法。首先我們來設置SpecificFinder...

?

1、右擊我們的department實體的Methods一節 ,選擇Add new Method。將方法名命名為GetDepartmentById。

2、打開我們的DepartmentService.cs,你會看到一個新的方法已經為我們創建出來。修改該方法的聲明以便其可以接收一個參數,并返回一個Department對象。?

public?static?Department?GetDepartmentById(Int16?departmentId)

?

3、在你的方法里添加如下代碼,來替換默認的Not Implemented Exception:

?代碼

DepartmentDataContext?db?=?new?DepartmentDataContext

("server=localhost;database=adventureworks2000;uid=***;pwd=***");
var?dbDepartment?=?db.Departments.SingleOrDefault(d?=>?d.DepartmentID?==?departmentId);
return?new?Department
{
????DepartmentId?=?dbDepartment.DepartmentID,
????Name?=?dbDepartment.Name,
????GroupName?=?dbDepartment.GroupName
};

我們需要再多做一點工作,因為我們希望返回我們自己的Department類,而不是由LINQ 2 SQL生成的那個。原因在第一篇中已經說明,個人認為這是一條正確的路。


4、接下來我們需要修改一下我們的BCS模型。返回到我們的BCS模型頁面,并點擊GetDepartmentById方法。在BCS方法詳細信息面板中選擇add a parameter。選中你的新參數,通過屬性面板修改其名稱為departmentId。然后點擊它下面的Type Descriptor,設置如下的值:

?

Name : departmentId

Type Name : System.Int16

Identifier : DepartmentId

?

?

5、然后我們來創建返回參數。回到BDC方法詳細信息面板,在GetDepartmentById方法下選擇創建另一個新的參數。

?

6、在BDC Explorer中選中新參數 ,修改名稱為Department,參數方向為Return。

?

7、現在是體現BDC Explorer優越性的時候了。展開我們的Department實體的GetDepartments方法。右擊Department類型描述器并選擇Copy。接著,右擊GetDepartmentById方法的Department參數選Paste。

?

這時會彈出對話框詢問是否覆蓋已有的Type Descriptor——點"yes"。這時你會發現Department類型描述器和所有字段的類型描述器都復制過來了。這樣就減少了一些我們的手動創建工作。?

?

結果:

需要注意的是,如果所復制的Type Descriptor帶有一些錯誤,則這些錯誤也會復制到其他方法。這也就是為什么最好先構建

Finder方法進行測試無誤后,再進行Type Descirptor的復制和粘貼。

?

8、現在我們只需要創建一個方法實例就可以了。返回BDC方法詳細信息面板,在GetDepartmentById方法下選擇Add a Method?Instance。設置其屬性值為:

?

Type : SpecificFinder

Default : True

Default Display Name : Single Department

Return Parameter Name : Department

Return Type Descriptor : Department


9、在測試和部署前,我們需要清除我們的DepartmentService.cs類中的多余代碼。

?

BCS設計器希望你在開始寫代碼前,先定義你的方法,參數和類型描述器。這也正是為什么在我們編輯完方法的返回對象和輸

入參數后會重新生成一段新的方法聲明。我更傾向于先寫代碼然后構建BCS模型。如果你和我的步驟一樣,一定要記住要檢查

Service類,清除沒用的方法代碼。

?

10、清除完后,直接F5編譯部署該WSP到SharePoint.

?

你可以通過添加并配置一個業務數據項WebPart來測試Specific Finder方法。或者也可以創建一個外表列表并點擊某一行彈出查看表單來驗證。

?

11、我們的Specific Finder BCS方法工作正常!現在讓我們返回Visual Studio,來配置我們的IdEnumerator方法。右擊我們的Department實體的Methods一節,添加一個名為GetDepartmentIds的方法。

12、進入DepartmentService.cs類,修改GetDepartmentIds方法的聲明為:

public?static?IEnumerable<short>?GetDepartmentIds()

?

13、記住,我們的IdEnumerator方法只支持返回字段中的主鍵的值。SharePoint會以此來創建索引并進行爬網。該方法的代碼很簡單:

DepartmentDataContext?db?=?new?DepartmentDataContext

("server=localhost;database=adventureworks2000;uid=***;pwd=***");
return?from?d?in?db.Departments
??????select?d.DepartmentID;

?

14、現在開始BCS模型的構建,以便反映出所返回的數據。切回到BCS模型視圖。選擇GetDepartmentIds方法,在BDC詳細信息面板里新建一個參數。

?

15、在BDC Explorer里展開樹,選中剛剛創建的參數。在屬性面板里修改其方向為Return。

?

16、選擇我們的參數下的parameterTypeDescriptor,設置其值:

?

Name : DepartmentIds

Type Name : System.Collections.Generic.IEnumerable`1[[System.Int16]]

IsCollection : True

?

17、右擊樹中的DepartmentIds類型描述器結點,選擇Add Type Descriptor。設置該類型描述器的屬性為:


Name : DepartmentId

Type Name : System.Int16

Identifier : DepartmentId


18、最后,為我們的方法添加一個MethodInstance。在BDC方法詳細信息面板中點擊Add a Method Instance。選中該方法實例并設置其屬性值:


Type : IdEnumerator

Default : True

Return Parameter Name : parameter

Return Type Descriptor : DepartmentIds


記得要清除DepartmentService.cs中我們建模過程中創建的GetDepartmentIds方法。


19、要將我們的LobSystemInstance做成一個可供SharePoint 2010索引器爬網的應用程序,還需要為其設置一個新屬性。這個屬性名為ShowInSearchUI。


在BDC Explorer中展開BCS模型,找到LobSystemInstance結點。


20、在屬性面板里,設置一個custom property,名為ShowInSearchUI,類型為System.String。該屬性實際上不需要值,只需要存在就可以了。


21、就這么多,現在我們可以按F5把我們的模型打包成WSP并部署到SharePoint了。這里我們還有些SharePoint UI里特殊步驟,用于在搜索結果中展現我們的Departments類型的數據。


22、在原先的BDC(Business Data Catalog)里,你的實體的配置文件頁面是自動創建的。而使用上面步驟在BCS中卻不會自動創建配置文件頁。因此我們需要一步手工操作來進行創建。打開SharePoint 2010管理中心,點擊管理服務應用程序。在服務應用程序頁中點擊Business Data Connectivity Service鏈接到其管理頁面。


23、在功能區上,點擊編輯標簽,點擊配置按鈕。彈出的表單,需要我們輸入一個配置文件頁宿主URL。正如頁面中解釋的那樣,最好單獨創建一個網站來宿主這些配置文件頁,但此處我們就直接輸入相同的Url,指向我們的SharePoint站點,對于我來說是http://sp2010u。


點擊確定關閉該表單。


24、現在,我們可以在我們的外部內容類型上創建配置文件頁了。鼠標懸停在我們的Department ECT上,在下拉菜單中選擇“創建/升級配置文件頁”。


在彈出的對話框中一路點確定。現在我們的配置文件頁就創建到23步中指定的宿主網站中了。


25、接下來我們要檢查一下我們的實體是不是可以被爬網。點擊Department ECT,檢查其中的“可爬網”屬性值為“是”。


26、現在,我們需要將我們的BCS應用程序設置為一個搜索內容源。回到管理服務應用程序頁面,點擊Search Service Application鏈接。


27、在左手的導航菜單中點擊“內容源”鏈接,然后再接下來的頁面上點擊新建內容源鏈接。


28、為新內容源起一個名字,并選擇其類型為業務部門數據(Line of Business Data)。點選后界面會刷新,然后顯示下面一節來展現外部數據源。選擇你要進行爬網的BCS應用系統,這里是BdcModel1

注意:如果你的應用系統沒有出現在這里,那么你需要檢查一下ShowInSearchUI有沒有被添加到屬性集中。(可以使用源代碼編輯器打開模型文件,而不是在默認的模型編輯界面。然后找找看LobSystemInstance結點下的屬性集里有沒有ShowInSearchUI)。

?

29、如果你愿意可以設置一下爬網計劃。 最后選中“對該內容源啟動完全爬網”,并點擊確定。

?

30、當爬網完成后,我們來檢查一下我們的BCS內容源的爬網日志。?

你應該可以看到有18個成功的條目——每個部門對應一條。?

?

31、如果你已經有一個工作組站點作為網站集根站點的話 ,你需要創建一個搜索中心站點。創建好后,進入搜索中心站點,搜索一個關鍵詞“engineering",這時你會看到借助Department ECT我們得到Engineering部門的返回結果。


32、你可以將該搜索中心掛接到你的工作組網站上。返回工作組站點,然后點擊

?

網站操作->網站設置-> 搜索設置

?

你可以把搜索中心的URL貼到這里,以便使用其結果頁。


Wow——為自己喝彩吧! 作為一個系列,接下來,我們還將介紹創建關聯的步驟。

?

參考資料

?BCS Model in Visual Studio 2010 – SpecificFinder and IdEnumerator

Searching External Data in SharePoint 2010 Using Business Connectivity Services

BDC .NET Assembly Connector: Tame SharePoint Search to search your .NET BDC Entity?

Search-Specific Properties in BDC Model Files

轉載于:https://www.cnblogs.com/Sunmoonfire/archive/2010/06/24/1762758.html

總結

以上是生活随笔為你收集整理的使用.NET程序集作为Business Data Connectivity数据源(二)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。