• 使用.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 

  • 相关阅读:
    NTP on FreeBSD 12.1
    Set proxy server on FreeBSD 12.1
    win32 disk imager使用后u盘容量恢复
    How to install Google Chrome Browser on Kali Linux
    Set NTP Service and timezone on Kali Linux
    Set static IP address and DNS on FreeBSD
    github博客标题显示不了可能是标题包含 特殊符号比如 : (冒号)
    server certificate verification failed. CAfile: none CRLfile: none
    删除文件和目录(彻底的)
    如何在Curl中使用Socks5代理
  • 原文地址:https://www.cnblogs.com/Sunmoonfire/p/1769391.html
Copyright © 2020-2023  润新知