In my **ASP.NET MVC (C#)** application, i am using **Entity Framework** and calling Stored Procudures like this :

```
    public virtual ObjectResult<ART_USP_GetAssetReportGridList_Result> ART_USP_GetAssetReportGridList(string searchExpression, string sortExpression, string sortDirection, Nullable<int> startIndex, Nullable<int> pageSize, ObjectParameter count)
    {
        var searchExpressionParameter = searchExpression != null ?
            new ObjectParameter("SearchExpression", searchExpression) :
            new ObjectParameter("SearchExpression", typeof(string));

        var sortExpressionParameter = sortExpression != null ?
            new ObjectParameter("SortExpression", sortExpression) :
            new ObjectParameter("SortExpression", typeof(string));

        var sortDirectionParameter = sortDirection != null ?
            new ObjectParameter("SortDirection", sortDirection) :
            new ObjectParameter("SortDirection", typeof(string));

        var startIndexParameter = startIndex.HasValue ?
            new ObjectParameter("StartIndex", startIndex) :
            new ObjectParameter("StartIndex", typeof(int));

        var pageSizeParameter = pageSize.HasValue ?
            new ObjectParameter("PageSize", pageSize) :
            new ObjectParameter("PageSize", typeof(int));

        return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<ART_USP_GetAssetReportGridList_Result>("ART_USP_GetAssetReportGridList", searchExpressionParameter, sortExpressionParameter, sortDirectionParameter, startIndexParameter, pageSizeParameter, count);
    }

```

Here **ART\_USP\_GetAssetReportGridList** is the stored procedure name. This is a synchronous call. If the number of records are more than 3000 this call is giving me Time-out error. 

How can i make this call asynchronously without getting the Time-out error?