ObjectContext.ExecuteFunction<TElement> Method (String, ObjectParameter[])


Executes a stored procedure or function that is defined in the data source and mapped in the conceptual model, with the specified parameters. Returns a typed ObjectResult<T>.

Namespace:   System.Data.Objects
Assembly:  System.Data.Entity (in System.Data.Entity.dll)

public ObjectResult<TElement> ExecuteFunction<TElement>(
	string functionName,
	params ObjectParameter[] parameters


Type: System.String

The name of the stored procedure or function. The name can include the container name, such as <Container Name>.<Function Name>. When the default container name is known, only the function name is required.

Type: System.Data.Objects.ObjectParameter[]

An array of ObjectParameter objects.

Return Value

Type: System.Data.Objects.ObjectResult<TElement>

An ObjectResult<T> for the data that is returned by the stored procedure.

Type Parameters


The entity type of the ObjectResult<T> returned when the function is executed against the data source. This type must implement IEntityWithChangeTracker.

Exception Condition

function is null or empty


function is not found.


The entity reader does not support this function.


There is a type mismatch on the reader and the function.

The ExecuteFunction<TElement> method is a helper method that is used to execute stored procedures or functions that are defined in the data source and expressed in the conceptual model. The Entity Data Model tools generate a method for each in the conceptual model. These methods call a strongly-typed ExecuteFunction to return a typed ObjectResult<T>. For more information, see Application Code using Stored Procedures (Enity Framework).

All parameters for the function are required in the parameters array and all types are checked against the metadata for the import function, including the type of the function itself. null values are permitted for CLR value types. Parameter validation is performed by the provider.

The ExecuteFunction<TElement> method uses the MergeOption value of AppendOnly. Therefore, if an object already exists in the object context, it will not be loaded from the data source.

.NET Framework
Available since 3.5
Return to top