IEntityInstance Interface

Represents instances of business objects, for example, customer #88697 and order #1000 in a back-end business application. The most important implementor of this interface is AbstractEntityInstance, which in turn is subclassed by WebServiceEntityInstance and DbEntityInstance.

Namespace:  Microsoft.Office.Server.ApplicationRegistry.Runtime
Assembly:  Microsoft.SharePoint.Portal (in Microsoft.SharePoint.Portal.dll)

Syntax

'Declaration
<SharePointPermissionAttribute(SecurityAction.InheritanceDemand, ObjectModel := True)> _
<SharePointPermissionAttribute(SecurityAction.LinkDemand, ObjectModel := True)> _
Public Interface IEntityInstance _
    Inherits IInstance
'Usage
Dim instance As IEntityInstance
[SharePointPermissionAttribute(SecurityAction.InheritanceDemand, ObjectModel = true)]
[SharePointPermissionAttribute(SecurityAction.LinkDemand, ObjectModel = true)]
public interface IEntityInstance : IInstance

Remarks

Conceptually, you can think of an entity instance as a single row of data returned from a back-end business application in the Business Data Catalog. The IEntityInstance interface abstracts the underlying data sources, insulates the clients from having to learn application-specific coding paradigms, and allows clients to access all business data in a single, simplified way. The IEntityInstance interface enables you to work with a row of data from a database in just the same way as you work with a complex Microsoft .NET Framework structure returned by a Web service.

An entity instance in the Business Data Catalog has special semantics attached to it. For example, it has the ability to know which fields in the row represent the identifier for the entity instance, and to enable to you call methods such as GetAssociatedInstances(), GetIdentifierValues, and Execute() on that entity instance.

Examples

This example shows how to execute a SpecificFinder method on the Product entity in the AdventureWorks2000 sample.

Prerequisites

  • Ensure a Shared Service Provider is already created.

  • Replace the constant value EnterYourSSPNameHere in the code with the name of your Shared Resource Provider.

  • Ensure the LobSystem object and entity names referenced in the example exist in the Business Data Catalog. Use valid names.

Project References

Add the following Project References in your console application code project before running this sample:

  • Microsoft.SharePoint

  • Microsoft.SharePoint.Portal

  • Microsoft.Office.Server

using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using Microsoft.Office.Server.ApplicationRegistry.MetadataModel;
using Microsoft.Office.Server.ApplicationRegistry.Runtime;
using Microsoft.Office.Server.ApplicationRegistry.SystemSpecific;
using Microsoft.Office.Server.ApplicationRegistry.Infrastructure;
using WSSAdmin = Microsoft.SharePoint.Administration;
using OSSAdmin = Microsoft.Office.Server.Administration;

namespace Microsoft.SDK.SharePointServer.Samples
{
    class ExecuteSpecificFinder
    {
        const string yourSSPName ="EnterYourSSPNameHere";

        static void Main(string[] args)
        {
            SetupBDC();
            FindSpecific();
            Console.WriteLine("Press any key to exit...");
            Console.Read();
        }
        static void SetupBDC()
        {
            SqlSessionProvider.Instance().SetSharedResourceProviderToUse(yourSSPName);
        }
        static void FindSpecific()
        {
            NamedLobSystemInstanceDictionary sysInstances = ApplicationRegistry.GetLobSystemInstances();
            LobSystemInstance AdvWorksIns = sysInstances["AdventureWorksSampleInstance"];
            Entity prodEntity = AdvWorksIns.GetEntities()["Product"];
            //ProductID = 1
            IEntityInstance IE = prodEntity.FindSpecific(1, AdvWorksIns);
            foreach (Field f in prodEntity.GetSpecificFinderView().Fields)
                Console.Write(IE[f]);
            Console.WriteLine("");
        }
    }
} 

See Also

Reference

IEntityInstance Members

Microsoft.Office.Server.ApplicationRegistry.Runtime Namespace