如何:添加特定的 Finder 方法

可以通过创建特定的 Finder 方法返回单个实体实例。 如果用户在业务数据 Web 部件或外部列表中选择了一个实体,则业务数据连接 (BDC) 服务将执行特定的 Finder 方法。 有关更多信息,请参见设计业务数据连接模型

创建特定的 Finder 方法

  1. 在 BDC 设计器中选择一个实体。 有关如何在 Visual Studio 中将实体添加到 BDC 设计器的更多信息, 有关更多信息,请参见如何:向模型添加实体

  2. 在**“视图”菜单上单击“其他窗口”,然后单击“BDC 方法详细信息”**。

    将打开**“BDC 方法详细信息”窗口。 有关“BDC 方法详细信息”**窗口的更多信息,请参见 BDC 模型设计工具概述

  3. 在**“BDC 方法详细信息”窗口的“添加方法”下拉列表中,选择“创建特定的 Finder 方法”**。

    Visual Studio 将以下元素添加到模型中。 这些元素将显示在**“BDC 方法详细信息”**窗口中。

    • 方法。

    • 该方法的输入参数。

    • 该方法的返回参数。

    • 每个参数的类型描述符。

    • 该方法的一个方法实例。

    有关更多信息,请参见设计业务数据连接模型

  4. 打开 Visual Studio 的**“属性”**窗口。

  5. 将返回参数的类型说明符配置为实体类型说明符。 有关如何创建实体类型说明符的更多信息,请参见如何:定义参数的类型描述符

    提示

    如果已向实体添加特定的 Finder 方法,则不必执行此步骤。 Visual Studio 将使用您在特定的 Finder 方法中定义的类型说明符。

    提示

    如果实体类型的标识符字段表示数据库表中自动生成的字段,则将该标识符字段的“只读”属性设置为“True”

  6. 在**“方法详细信息”**窗口中选择方法的方法实例。

    默认情况下,Visual Studio 将此方法命名为**“MethodInstance1”**。

  7. 在**“属性窗口”中,将“返回参数名称”**属性设置为该方法的返回参数的名称。 有关方法实例属性的更多信息,请参见 MethodInstance

  8. 在**“解决方案资源管理器”中,右击为该实体生成的服务代码文件,然后单击“查看代码”**。

    在代码编辑器中打开实体服务代码文件。 有关实体服务代码文件的更多信息,请参见创建业务数据连接模型

  9. 将代码添加到特定的 Finder 方法。 这段代码将执行下列任务:

    • 从数据源中检索记录。

    • 将实体返回到 BDC 服务。

    下面的示例返回 SQL Server 的 AdventureWorks 示例数据库中的联系人。

    提示

    用您的服务器名称替换 ServerName 字段的值。

    Public Shared Function ReadItem(ByVal contactID As Integer) As Contact
        Const ServerName As String = "MySQLServerName"
        Dim dataContext As AdventureWorksDataContext = _
            New AdventureWorksDataContext("Data Source=" & ServerName & _
                ";Initial Catalog=AdventureWorks;Integrated Security=True")
    
        Dim Contact As Contact = _
            (From TempContacts In dataContext.Contacts.AsEnumerable().Take(20) _
            Where TempContacts.ContactID = contactID _
            Select TempContacts).[Single]()
        Return Contact
    End Function
    
    public static Contact ReadItem(int contactID)
    {
        const string ServerName = "MySQLServerName";
        AdventureWorksDataContext dataContext = new AdventureWorksDataContext
              ("Data Source=" + ServerName + ";" +
               "Initial Catalog=AdventureWorks;Integrated Security=True");
    
        Contact Contact =
            (from contacts in dataContext.Contacts.AsEnumerable().Take(20)
             where contacts.ContactID == contactID
             select contacts).Single();
        return Contact;
    }
    

请参见

任务

如何:添加 Finder 方法

如何:添加 Creator 方法

如何:添加 Deleter 方法

如何:添加 Updater 方法

如何:向方法添加参数

如何:定义方法实例

概念

BDC 模型设计工具概述

其他资源

设计业务数据连接模型