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

在我们之前的博文中,我们学习了如何用Visual Studio 2010为AdventureWork2000数据库的Department表创建 BCS模型和定义BCS方法( FinderSpecific Finder,Id Enumerator Creator和Updater)。


本文我们将学习如何在Visual Studio 2010中配置两个BCS外部内容类型间的关联。在前面的文章中,我们已经用过了Department表,因此Employee表就成了第二个外部内容类型的最佳选择,我们将创建部门与雇员间的关联。首先,我们需要建立Employee BCS外部内容类型。因此请打开你先前用过的Department外部内容类型的项目,并使用完全相同的步骤创建Employee外部内容类型。你不需要定义所有的方法,只要有Finder和Specific Finder就足够了。

步骤

1)请确保你已经为Employee外部内容类型定义好Finder和SpecificFinder方法。你可以使用BCS业务数据列表Web部件和BCS业务数据列表项Web部件来检查是否可以正确地检索到Employee数据。当前状态下在Visual Studio 2010里的BCS模型图应该如下图所示:


Employee表包含很多列,在本例中,我们只使用EmployeeID, FirstName, LastName, Title, DepartmentId。

2)在Visual Studio 2010里查看工具箱,然后点击 “Association”。

 

3)要建立Department与Employee之间的关联,点击完工具箱的关联图标后,先点界面上Department实体再点Employee实体。


4)弹出一个新的对话框,在这里你可以配置关联方法。


5)  在第一部分 - Identifier Mapping,你可以从源实体映射标识符到目标实体;而在第二部分 - Association Methods,您可以添加/删除AssociationNavigator方法。在我们的例子中,我们将删除EmployeeToDepartment方法,只留下DepartmentToEmployee方法。


6)按“确定”按钮,将创建Department(来源)和Employee(目标)外部内容类型的关联。


7)接下来,我们需要编写关联方法的C#代码。打开DepartmentService.cs文件,你会看到自动生成的DepartmentToEmployee方法。用下面的C#代码方法替换其内容。
public static IEnumerable<Employee> DepartmentToEmployee(short departmentId)
{
    
EmployeeDataContext db = new EmployeeDataContext("server=localhost;database=adventureworks2000;uid=***;pwd=***");
    
IEnumerable<Employee> records = from record in db.Employees
                                    
where record.DepartmentID == departmentId
                                    
select new Employee
                                    {
                                        EmployeeID 
= record.EmployeeID,
                                        FirstName 
= record.FirstName,
                                        LastName 
= record.LastName,
                                        Title 
= record.Title,
                                        DepartmentID 
= (Int16)record.DepartmentID
                                    };
    
return records;
}

 

8)按Ctrl + F5键重新编译和部署该解决方案。打开SharePoint站点,进入页面的编辑模式。在页面上拖放一个“业务数据列表”Web部件和一个“与业务数据相关的列表”Web部件。

 

9)在业务数据列表WebPart中选择Department实体,在相关WebPart中选择Employee实体。 

 

10)我们需要将这两个WebPart连接起来。在Department WebPart处于编辑模式时,通过WebPart菜单来添加一个连接。 

 

11)完成连接后,你可以点击Department列表每行头部出现的图标,将调用关联方法,在相关里面显示相应部门的雇员记录。

 

 

参考资料

create association method for bcs dot net assembly 

posted @ 2010-07-02 17:52  Sunmoonfire  阅读(1436)  评论(0编辑  收藏  举报