How to: Execute a Method on an Entity
Entities contain methods. To execute the methods that are available on an entity, the Entity object provides the Execute method.
The two code examples in this topic show the use of the Execute method to do a raw method execution. The example ExecuteEntityOverrideArgs method overrides the default values of the parameters with different values before executing the method call.
Example
This example shows the use of the Execute method to do a raw method execution. This ExecuteEntityOverrideArgs method in the example also shows how to override the default values of the parameters with different values before execution.
Note
Though this example executes a Finder method, you will not typically use Entity.Execute to execute Finder methods. To execute methods of type Finder and Filter, you should use the FindFiltered and FindSpecific methods.
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.
Make sure the LobSystem 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 ExecuteEntity
{
const string yourSSPName ="EnterYourSSPNameHere";
static void Main(string[] args)
{
SetupBDC();
ExecuteEntity();
ExecuteEntityOverrideArgs();
Console.WriteLine("Press any key to exit...");
Console.Read();
}
static void SetupBDC()
{
SqlSessionProvider.Instance().SetSharedResourceProviderToUse(yourSSPName);
}
static void ExecuteEntity()
{
NamedLobSystemInstanceDictionary sysInstances = ApplicationRegistry.GetLobSystemInstances();
LobSystemInstance AdvWorksIns = sysInstances["AdventureWorksSampleInstance"];
Entity prodEntity = AdvWorksIns.GetEntities()["Product"];
MethodInstance methInst = prodEntity.GetFinderMethodInstance();
IEntityInstanceEnumerator prodEntityInstanceEnumerator =
(IEntityInstanceEnumerator)prodEntity.Execute(methInst,
AdvWorksIns);
while (prodEntityInstanceEnumerator.MoveNext())
{
IEntityInstance IE = prodEntityInstanceEnumerator.Current;
foreach (Field f in prodEntity.GetFinderView().Fields)
Console.Write(IE[f]);
Console.WriteLine("");
}
}
static void ExecuteEntityOverrideArgs()
{
NamedLobSystemInstanceDictionary sysInstances = ApplicationRegistry.GetLobSystemInstances();
LobSystemInstance AdvWorksIns = sysInstances["AdventureWorksSampleInstance"];
Entity prodEntity = AdvWorksIns.GetEntities()["Product"];
MethodInstance methInst = prodEntity.GetFinderMethodInstance();
Object[] args = methInst.GetMethod().CreateDefaultParameterInstances(methInst);
//Min ProductID
args[0] = 1;
//Max Product ID
args[1] = 10;
IEntityInstanceEnumerator prodEntityInstanceEnumerator =
(IEntityInstanceEnumerator)
prodEntity.Execute(methInst, AdvWorksIns, ref args);
while (prodEntityInstanceEnumerator.MoveNext())
{
IEntityInstance IE = prodEntityInstanceEnumerator.Current;
foreach (Field f in prodEntity.GetFinderView().Fields)
Console.Write(IE[f]);
Console.WriteLine("");
}
}
}
}
See Also
Concepts
Business Data Catalog: Metadata Model
Other Resources
Browsing the Metadata Repository and Executing Methods and Filters
Building Custom Applications Using the Business Data Catalog