本文将带领大家使用SharePoint Designer创建基于WCF服务的外部内容类型。

步骤

1、检查你的WCF服务已经宿主并可用。本文将使用封装AdventureWorks2000数据库的Contact表得到的WCF服务。 首先打开你的IIS管理器,导航到宿主你的WCF服务的网站,确保其正常运行。

SharePoint Designer 2010中的外部内容类型-WCF 

 

2、打开IE浏览器并导航到该服务的.svc文件。 你应该能够看到类型如下的页面,表示该WCF服务正在工作。

SharePoint Designer 2010中的外部内容类型-WCF 


WCF的检查工作结束。现在我们开始基于该WCF在SPD中创建我们的外部内容类型。

3、打开SharePoint Designer 2010并点击“打开网站”大按钮。

SharePoint Designer 2010中的外部内容类型-WCF
[点击图片可查看完整尺寸]

4、输入你的SharePoint站点URL地址并回车。SPD将会连接到该站点并获取信息。

SharePoint Designer 2010中的外部内容类型-WCF
[点击图片可查看完整尺寸]

5、从左侧导航窗格中点击外部内容类型。可以看到顶部的功能区也进行了相应的改变,反映当前的工作状态。

6、在功能区中,点击新建中的外部内容类型。

SharePoint Designer 2010中的外部内容类型-WCF

7、打开的摘要页面中,可以编辑和管理外部内容类型。

SharePoint Designer 2010中的外部内容类型-WCF
[点击图片可查看完整尺寸]

这里有一些类似超链接的标签,点击可设置值 。最上面的两个是名称和显示名称,设置其值为:

 

名称:联系人

显示名称:联系人 

 

接下来,我们选择一个外部数据源来进行连接。点击链接“点击此处发现数据源并定义操作”。

8、进入操作设计器视图。点击添加连接按钮。

SharePoint Designer 2010中的外部内容类型-WCF
[点击图片可查看完整尺寸]

9、选择数据源类型为 “WCF服务”

SharePoint Designer 2010中的外部内容类型-WCF 

10、WCF连接窗口打开。这里我们需要填写有关我们WCF服务的一些连接信息,以便SharePoint Designer进行连接。根据上面我们检查到的WCF宿主情况,这里我填入:

服务元数据URL:http://contact/service.svc?WSDL

服务终结点URL:http://contact/service.svc 

SharePoint Designer 2010中的外部内容类型-WCF 

11、配置好WCF连接后,点击确定。这时将尝试连接到你的WCF服务。如果一切正常,你会看到所有可用的Web方法。

SharePoint Designer 2010中的外部内容类型-WCF 

12、我们需要创建相应的BCS操作。本例中,我们将使用GetContactFinder作为“读取列表”操作,使用GetContactSpecificFinder作为“读取项”操作。

13、右击 GetContactFinder并选择“新建读取列表”操作。

SharePoint Designer 2010中的外部内容类型-WCF 

14、在弹出的向导中,“返回参数” 一节中会提示一个错误信息,“应至少指定一个标识符”。选择ContactID并勾选“映射到标识符”。在标识符下拉框中选中ContactID。点击完成,创建好了读取列表操作。

SharePoint Designer 2010中的外部内容类型-WCF

 

15、右击GetContactSpecificFinder并选择新建“读取项”操作。

SharePoint Designer 2010中的外部内容类型-WCF 

16、在操作属性窗口中,输入参数一节我们需要映射该输入参数到标识符。选中contactid并在右侧的面板中勾上“映射到标识符”,并在标识符下拉框中选中ContactID。点击下一步。

SharePoint Designer 2010中的外部内容类型-WCF 

 

17、在返回参数一节,也包含一条错误提示指出需要映射标识符。为了修复该错误,在左侧选择ContactID,右侧勾选“映射到标识符” 并在标识符下拉框中选中ContactID。点击完成按钮。 

SharePoint Designer 2010中的外部内容类型-WCF

 

18、现在,右侧的ECT操作中已经有两个操作了。你也可以根据需要添加其他操作,如创建,更新等等。

SharePoint Designer 2010中的外部内容类型-WCF

 

19、按“Ctrl+S”键保存该ECT。 

SharePoint Designer 2010中的外部内容类型-WCF

 

20、我们可以打开SharePoint站点,创建外部列表绑到我们的外部内容类型。 

SharePoint Designer 2010中的外部内容类型-WCF

 

21、它会调用“读取列表”操作 (WCF中的Finder方法)来获取数据。

SharePoint Designer 2010中的外部内容类型-WCF


22、选中任意一条数据,然后点击“项目”功能区,其中的“查看项目”操作会调用WCF的Specific Finder方法,在弹出框中显示选中的项。 

SharePoint Designer 2010中的外部内容类型-WCF

 

SharePoint Designer 2010中的外部内容类型-WCF

 

附上本例中涉及的WCF相关代码,以备参考。

1、IAdventureWorks2000WCFService.cs

using System;
using System.Collections.Generic;
using System.Runtime.Serialization;
using System.ServiceModel;

[ServiceContract]
public interface IAdventureWorks2000WCFService
{
  
      [OperationContract]
      List
<Contact> GetContactFinder();
    
      [OperationContract]
      Contact GetContactSpecificFinder(Int32 contactid);
    
      [OperationContract]
      List
<Int32> GetContactIdEnumerator();
    
}

[DataContract]
public class Contact
{
  
      [DataMember]
      
public Int32 ContactID
      {
      
get;
      
set;
      }

    
      [DataMember]
      
public String Salutation
      {
      
get;
      
set;
      }

    
      [DataMember]
      
public String FirstName
      {
      
get;
      
set;
      }

    
      [DataMember]
      
public String MiddleName
      {
      
get;
      
set;
      }

    
      [DataMember]
      
public String LastName
      {
      
get;
      
set;
      }

    
      [DataMember]
      
public Boolean NameStyle
      {
      
get;
      
set;
      }

    
      [DataMember]
      
public String Phone
      {
      
get;
      
set;
      }

    
      [DataMember]
      
public String Suffix
      {
      
get;
      
set;
      }

    
      [DataMember]
      
public String EmailAddress
      {
      
get;
      
set;
      }

    
      [DataMember]
      
public String Password
      {
      
get;
      
set;
      }

    
      [DataMember]
      
public Int32 EmailPromotion
      {
      
get;
      
set;
      }

    
      [DataMember]
      
public DateTime ModifiedDate
      {
      
get;
      
set;
      }

    
      [DataMember]
      
public Guid rowguid
      {
      
get;
      
set;
      }

    
      [DataMember]
      
public String AdditionalContactInfo
      {
      
get;
      
set;
      }

    
}

相关文章:

  • 2021-08-10
  • 2021-07-29
  • 2022-03-08
  • 2022-12-23
  • 2022-12-23
  • 2021-05-17
  • 2021-12-21
猜你喜欢
  • 2022-02-28
  • 2021-12-18
  • 2021-07-15
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案