zoukankan      html  css  js  c++  java
  • 使用.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 

  • 相关阅读:
    thinkPHP中怎么访问域名直接跳到后台登录页面
    使用ajax方法实现form表单的提交
    微信小程序根据生日获取年龄
    微信小程序出现 text 设置行高 line-height 无效的问题
    微信小程序中换行,空格(多个空格)写法
    如何用css实现弧度圆角?三角形以及圆形
    微信小程序的bindtap事件
    JS控制只能输入数字并且最多允许小数点两位
    微信小程序如何做金额输入限制
    微信小程序使用函数的三种方法
  • 原文地址:https://www.cnblogs.com/Sunmoonfire/p/1769391.html
Copyright © 2011-2022 走看看