objectquery_tresulttype.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / ndp / fx / src / DataEntity / System / Data / Objects / objectquery_tresulttype.cs / 1 / objectquery_tresulttype.cs

                            //---------------------------------------------------------------------- 
// 
//      Copyright (c) Microsoft Corporation.  All rights reserved.
// 
// 
// @owner [....]
// @backupowner [....] 
//--------------------------------------------------------------------- 

using System; 
using System.Text.RegularExpressions;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel; 
using System.Globalization;
using System.Diagnostics; 
using System.Data; 
using System.Data.Common;
using System.Data.Common.EntitySql; 
using System.Data.Common.Utils;
using System.Data.Mapping;
using System.Data.Metadata.Edm;
using System.Data.Common.CommandTrees; 
using System.Data.Common.CommandTrees.Internal;
using System.Data.Objects.DataClasses; 
using System.Data.Objects.ELinq; 
using System.Data.Objects.Internal;
using System.Data.Common.QueryCache; 
using System.Data.EntityClient;
using System.Linq;
using System.Linq.Expressions;
 
namespace System.Data.Objects
{ 
    ///  
    ///   This class implements strongly-typed queries at the object-layer through
    ///   Entity SQL text and query-building helper methods. 
    /// 
    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix")]
    public partial class ObjectQuery : ObjectQuery, IEnumerable, IQueryable, IOrderedQueryable, IListSource
    { 
        internal ObjectQuery(ObjectQueryState queryState)
            : base(queryState) 
        { 
        }
 
        #region Public Methods

        /// 
        ///   This method allows explicit query evaluation with a specified merge 
        ///   option which will override the merge option property.
        ///  
        ///  
        ///   The MergeOption to use when executing the query.
        ///  
        /// 
        ///   An enumerable for the ObjectQuery results.
        /// 
        public new ObjectResult Execute(MergeOption mergeOption) 
        {
            EntityUtil.CheckArgumentMergeOption(mergeOption); 
            return this.GetResults(mergeOption); 
        }
 
        /// 
        ///   Adds a path to the set of navigation property span paths included in the results of this query
        /// 
        /// The new span path 
        /// A new ObjectQuery that includes the specified span path
        public ObjectQuery Include(string path) 
        { 
            EntityUtil.CheckStringArgument(path, "path");
            return new ObjectQuery(this.QueryState.Include(this, path)); 
        }

        #endregion
 
        #region IEnumerable implementation
 
        ///  
        ///   These methods are the "executors" for the query. They can be called
        ///   directly, or indirectly (by foreach'ing through the query, for example). 
        /// 
        IEnumerator IEnumerable.GetEnumerator()
        {
            ObjectResult disposableEnumerable = this.GetResults(null); 
            try
            { 
                IEnumerator result = disposableEnumerable.GetEnumerator(); 
                return result;
            } 
            catch
            {
                // if there is a problem creating the enumerator, we should dispose
                // the enumerable (if there is no problem, the enumerator will take 
                // care of the dispose)
                disposableEnumerable.Dispose(); 
                throw; 
            }
        } 

        #endregion

        #region ObjectQuery Overrides 

        internal override IEnumerator GetEnumeratorInternal() 
        { 
            return ((IEnumerable)this).GetEnumerator();
        } 

        internal override IList GetIListSourceListInternal()
        {
            return ((IListSource)this.GetResults(null)).GetList(); 
        }
 
        internal override ObjectResult ExecuteInternal(MergeOption mergeOption) 
        {
            return this.GetResults(mergeOption); 
        }

        #endregion
 
        #region Private Methods
 
        private ObjectResult GetResults(MergeOption? forMergeOption) 
        {
            this.QueryState.ObjectContext.EnsureConnection(); 

            try
            {
                ObjectQueryExecutionPlan execPlan = this.QueryState.GetExecutionPlan(forMergeOption); 
                return execPlan.Execute(this.QueryState.ObjectContext, this.QueryState.Parameters);
            } 
            catch 
            {
                this.QueryState.ObjectContext.ReleaseConnection(); 
                throw;
            }
        }
 
        #endregion
    } 
} 

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//---------------------------------------------------------------------- 
// 
//      Copyright (c) Microsoft Corporation.  All rights reserved.
// 
// 
// @owner [....]
// @backupowner [....] 
//--------------------------------------------------------------------- 

using System; 
using System.Text.RegularExpressions;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel; 
using System.Globalization;
using System.Diagnostics; 
using System.Data; 
using System.Data.Common;
using System.Data.Common.EntitySql; 
using System.Data.Common.Utils;
using System.Data.Mapping;
using System.Data.Metadata.Edm;
using System.Data.Common.CommandTrees; 
using System.Data.Common.CommandTrees.Internal;
using System.Data.Objects.DataClasses; 
using System.Data.Objects.ELinq; 
using System.Data.Objects.Internal;
using System.Data.Common.QueryCache; 
using System.Data.EntityClient;
using System.Linq;
using System.Linq.Expressions;
 
namespace System.Data.Objects
{ 
    ///  
    ///   This class implements strongly-typed queries at the object-layer through
    ///   Entity SQL text and query-building helper methods. 
    /// 
    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix")]
    public partial class ObjectQuery : ObjectQuery, IEnumerable, IQueryable, IOrderedQueryable, IListSource
    { 
        internal ObjectQuery(ObjectQueryState queryState)
            : base(queryState) 
        { 
        }
 
        #region Public Methods

        /// 
        ///   This method allows explicit query evaluation with a specified merge 
        ///   option which will override the merge option property.
        ///  
        ///  
        ///   The MergeOption to use when executing the query.
        ///  
        /// 
        ///   An enumerable for the ObjectQuery results.
        /// 
        public new ObjectResult Execute(MergeOption mergeOption) 
        {
            EntityUtil.CheckArgumentMergeOption(mergeOption); 
            return this.GetResults(mergeOption); 
        }
 
        /// 
        ///   Adds a path to the set of navigation property span paths included in the results of this query
        /// 
        /// The new span path 
        /// A new ObjectQuery that includes the specified span path
        public ObjectQuery Include(string path) 
        { 
            EntityUtil.CheckStringArgument(path, "path");
            return new ObjectQuery(this.QueryState.Include(this, path)); 
        }

        #endregion
 
        #region IEnumerable implementation
 
        ///  
        ///   These methods are the "executors" for the query. They can be called
        ///   directly, or indirectly (by foreach'ing through the query, for example). 
        /// 
        IEnumerator IEnumerable.GetEnumerator()
        {
            ObjectResult disposableEnumerable = this.GetResults(null); 
            try
            { 
                IEnumerator result = disposableEnumerable.GetEnumerator(); 
                return result;
            } 
            catch
            {
                // if there is a problem creating the enumerator, we should dispose
                // the enumerable (if there is no problem, the enumerator will take 
                // care of the dispose)
                disposableEnumerable.Dispose(); 
                throw; 
            }
        } 

        #endregion

        #region ObjectQuery Overrides 

        internal override IEnumerator GetEnumeratorInternal() 
        { 
            return ((IEnumerable)this).GetEnumerator();
        } 

        internal override IList GetIListSourceListInternal()
        {
            return ((IListSource)this.GetResults(null)).GetList(); 
        }
 
        internal override ObjectResult ExecuteInternal(MergeOption mergeOption) 
        {
            return this.GetResults(mergeOption); 
        }

        #endregion
 
        #region Private Methods
 
        private ObjectResult GetResults(MergeOption? forMergeOption) 
        {
            this.QueryState.ObjectContext.EnsureConnection(); 

            try
            {
                ObjectQueryExecutionPlan execPlan = this.QueryState.GetExecutionPlan(forMergeOption); 
                return execPlan.Execute(this.QueryState.ObjectContext, this.QueryState.Parameters);
            } 
            catch 
            {
                this.QueryState.ObjectContext.ReleaseConnection(); 
                throw;
            }
        }
 
        #endregion
    } 
} 

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK