Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / ndp / fx / src / DataWebControls / System / Data / WebControls / EntityDataSourceView.cs / 3 / EntityDataSourceView.cs
//----------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//
// @owner [....]
// @backupOwner [....]
//---------------------------------------------------------------------
using System;
using System.Collections;
using System.Data;
using System.Data.Common;
using System.Data.Objects;
using System.Data.Metadata.Edm;
using System.Configuration;
using System.Diagnostics;
using System.Globalization;
using System.Linq;
using System.Reflection;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.DynamicData;
using System.Data.Objects.DataClasses;
using System.Collections.Specialized;
using System.ComponentModel;
using System.Collections.Generic;
using System.Text;
using System.Collections.ObjectModel;
namespace System.Web.UI.WebControls
{
public sealed class EntityDataSourceView : DataSourceView, IStateManager
{
private EntityDataSource _owner;
private ObjectContext _ctx = null;
private static readonly ObjectParameter[] _noParameters = new ObjectParameter[0] { };
readonly static Dictionary emptyDictionary = new Dictionary();
private ReadOnlyMetadataCollection _keyMembers = null;
private EntityDataSourceWrapperCollection _wrapperCollection = null;
//
private static readonly object EventContextCreated = new object();
private static readonly object EventContextCreating = new object();
private static readonly object EventContextDisposing = new object();
private static readonly object EventDeleted = new object();
private static readonly object EventDeleting = new object();
private static readonly object EventInserted = new object();
private static readonly object EventInserting = new object();
private static readonly object EventSelected = new object();
private static readonly object EventSelecting = new object();
private static readonly object EventUpdated = new object();
private static readonly object EventUpdating = new object();
private static readonly object EventException = new object();
// values saved in ViewState
private bool _disableUpdates = false;
private bool _tracking = false;
private Dictionary _originalProperties;
#region Constructor
internal EntityDataSourceView(EntityDataSource owner, string viewName)
: base(owner, viewName)
{
_owner = owner;
}
#endregion Constructor
#region ExecuteSelect
protected override IEnumerable ExecuteSelect(DataSourceSelectArguments arguments)
{
if (!string.IsNullOrEmpty(_owner.Select))
{
return ExecuteSelect(arguments, EntityDataSourceRecordQueryBuilder.Create);
}
else
{
return ExecuteSelect