Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataEntity / System / Data / EntityClient / DbParameterCollectionHelper.cs / 1305376 / DbParameterCollectionHelper.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- namespace System.Data.EntityClient { using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Data.Common; using System.Data.ProviderBase; using System.Diagnostics; using System.Globalization; using System.Runtime.InteropServices; public sealed partial class EntityParameterCollection : DbParameterCollection { private List_items; override public int Count { get { return ((null != _items) ? _items.Count : 0); } } private List InnerList { get { List items = _items; if (null == items) { items = new List (); _items = items; } return items; } } override public bool IsFixedSize { get { return ((System.Collections.IList)InnerList).IsFixedSize; } } override public bool IsReadOnly { get { return ((System.Collections.IList)InnerList).IsReadOnly; } } override public bool IsSynchronized { get { return ((System.Collections.ICollection)InnerList).IsSynchronized; } } override public object SyncRoot { get { return ((System.Collections.ICollection)InnerList).SyncRoot; } } [ EditorBrowsableAttribute(EditorBrowsableState.Never) ] override public int Add(object value) { OnChange(); ValidateType(value); Validate(-1, value); InnerList.Add((EntityParameter)value); return Count-1; } override public void AddRange(System.Array values) { OnChange(); if (null == values) { throw ADP.ArgumentNull("values"); } foreach(object value in values) { ValidateType(value); } foreach(EntityParameter value in values) { Validate(-1, value); InnerList.Add((EntityParameter)value); } } private int CheckName(string parameterName) { int index = IndexOf(parameterName); if (index < 0) { throw ADP.ParametersSourceIndex(parameterName, this, ItemType); } return index; } override public void Clear() { OnChange(); List items = InnerList; if (null != items) { foreach(EntityParameter item in items) { item.ResetParent(); } items.Clear(); } } override public bool Contains(object value) { return (-1 != IndexOf(value)); } override public void CopyTo(Array array, int index) { ((System.Collections.ICollection)InnerList).CopyTo(array, index); } override public System.Collections.IEnumerator GetEnumerator() { return ((System.Collections.ICollection)InnerList).GetEnumerator(); } override protected DbParameter GetParameter(int index) { RangeCheck(index); return InnerList[index]; } override protected DbParameter GetParameter(string parameterName) { int index = IndexOf(parameterName); if (index < 0) { throw ADP.ParametersSourceIndex(parameterName, this, ItemType); } return InnerList[index]; } private static int IndexOf(System.Collections.IEnumerable items, string parameterName) { if (null != items) { int i = 0; foreach(EntityParameter parameter in items) { if (0 == ADP.SrcCompare(parameterName, parameter.ParameterName)) { return i; } ++i; } i = 0; foreach(EntityParameter parameter in items) { if (0 == ADP.DstCompare(parameterName, parameter.ParameterName)) { return i; } ++i; } } return -1; } override public int IndexOf(string parameterName) { return IndexOf(InnerList, parameterName); } override public int IndexOf(object value) { if (null != value) { ValidateType(value); List items = InnerList; if (null != items) { int count = items.Count; for (int i = 0; i < count; i++) { if (value == items[i]) { return i; } } } } return -1; } override public void Insert(int index, object value) { OnChange(); ValidateType(value); Validate(-1, (EntityParameter)value); InnerList.Insert(index, (EntityParameter)value); } private void RangeCheck(int index) { if ((index < 0) || (Count <= index)) { throw ADP.ParametersMappingIndex(index, this); } } override public void Remove(object value) { OnChange(); ValidateType(value); int index = IndexOf(value); if (-1 != index) { RemoveIndex(index); } else if (this != ((EntityParameter)value).CompareExchangeParent(null, this)) { throw ADP.CollectionRemoveInvalidObject(ItemType, this); } } override public void RemoveAt(int index) { OnChange(); RangeCheck(index); RemoveIndex(index); } override public void RemoveAt(string parameterName) { OnChange(); int index = CheckName(parameterName); RemoveIndex(index); } private void RemoveIndex(int index) { List items = InnerList; Debug.Assert((null != items) && (0 <= index) && (index < Count), "RemoveIndex, invalid"); EntityParameter item = items[index]; items.RemoveAt(index); item.ResetParent(); } private void Replace(int index, object newValue) { List items = InnerList; Debug.Assert((null != items) && (0 <= index) && (index < Count), "Replace Index invalid"); ValidateType(newValue); Validate(index, newValue); EntityParameter item = items[index]; items[index] = (EntityParameter)newValue; item.ResetParent(); } override protected void SetParameter(int index, DbParameter value) { OnChange(); RangeCheck(index); Replace(index, value); } override protected void SetParameter(string parameterName, DbParameter value) { OnChange(); int index = IndexOf(parameterName); if (index < 0) { throw ADP.ParametersSourceIndex(parameterName, this, ItemType); } Replace(index, value); } private void Validate(int index, object value) { if (null == value) { throw ADP.ParameterNull("value", this, ItemType); } object parent = ((EntityParameter)value).CompareExchangeParent(this, null); if (null != parent) { if (this != parent) { throw ADP.ParametersIsNotParent(ItemType, this); } if (index != IndexOf(value)) { throw ADP.ParametersIsParent(ItemType, this); } } String name = ((EntityParameter)value).ParameterName; if (0 == name.Length) { index = 1; do { name = ADP.Parameter + index.ToString(CultureInfo.CurrentCulture); index++; } while (-1 != IndexOf(name)); ((EntityParameter)value).ParameterName = name; } } private void ValidateType(object value) { if (null == value) { throw ADP.ParameterNull("value", this, ItemType); } else if (!ItemType.IsInstanceOfType(value)) { throw ADP.InvalidParameterType(this, ItemType, value); } } }; } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //---------------------------------------------------------------------- // // Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- namespace System.Data.EntityClient { using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Data.Common; using System.Data.ProviderBase; using System.Diagnostics; using System.Globalization; using System.Runtime.InteropServices; public sealed partial class EntityParameterCollection : DbParameterCollection { private List_items; override public int Count { get { return ((null != _items) ? _items.Count : 0); } } private List InnerList { get { List items = _items; if (null == items) { items = new List (); _items = items; } return items; } } override public bool IsFixedSize { get { return ((System.Collections.IList)InnerList).IsFixedSize; } } override public bool IsReadOnly { get { return ((System.Collections.IList)InnerList).IsReadOnly; } } override public bool IsSynchronized { get { return ((System.Collections.ICollection)InnerList).IsSynchronized; } } override public object SyncRoot { get { return ((System.Collections.ICollection)InnerList).SyncRoot; } } [ EditorBrowsableAttribute(EditorBrowsableState.Never) ] override public int Add(object value) { OnChange(); ValidateType(value); Validate(-1, value); InnerList.Add((EntityParameter)value); return Count-1; } override public void AddRange(System.Array values) { OnChange(); if (null == values) { throw ADP.ArgumentNull("values"); } foreach(object value in values) { ValidateType(value); } foreach(EntityParameter value in values) { Validate(-1, value); InnerList.Add((EntityParameter)value); } } private int CheckName(string parameterName) { int index = IndexOf(parameterName); if (index < 0) { throw ADP.ParametersSourceIndex(parameterName, this, ItemType); } return index; } override public void Clear() { OnChange(); List items = InnerList; if (null != items) { foreach(EntityParameter item in items) { item.ResetParent(); } items.Clear(); } } override public bool Contains(object value) { return (-1 != IndexOf(value)); } override public void CopyTo(Array array, int index) { ((System.Collections.ICollection)InnerList).CopyTo(array, index); } override public System.Collections.IEnumerator GetEnumerator() { return ((System.Collections.ICollection)InnerList).GetEnumerator(); } override protected DbParameter GetParameter(int index) { RangeCheck(index); return InnerList[index]; } override protected DbParameter GetParameter(string parameterName) { int index = IndexOf(parameterName); if (index < 0) { throw ADP.ParametersSourceIndex(parameterName, this, ItemType); } return InnerList[index]; } private static int IndexOf(System.Collections.IEnumerable items, string parameterName) { if (null != items) { int i = 0; foreach(EntityParameter parameter in items) { if (0 == ADP.SrcCompare(parameterName, parameter.ParameterName)) { return i; } ++i; } i = 0; foreach(EntityParameter parameter in items) { if (0 == ADP.DstCompare(parameterName, parameter.ParameterName)) { return i; } ++i; } } return -1; } override public int IndexOf(string parameterName) { return IndexOf(InnerList, parameterName); } override public int IndexOf(object value) { if (null != value) { ValidateType(value); List items = InnerList; if (null != items) { int count = items.Count; for (int i = 0; i < count; i++) { if (value == items[i]) { return i; } } } } return -1; } override public void Insert(int index, object value) { OnChange(); ValidateType(value); Validate(-1, (EntityParameter)value); InnerList.Insert(index, (EntityParameter)value); } private void RangeCheck(int index) { if ((index < 0) || (Count <= index)) { throw ADP.ParametersMappingIndex(index, this); } } override public void Remove(object value) { OnChange(); ValidateType(value); int index = IndexOf(value); if (-1 != index) { RemoveIndex(index); } else if (this != ((EntityParameter)value).CompareExchangeParent(null, this)) { throw ADP.CollectionRemoveInvalidObject(ItemType, this); } } override public void RemoveAt(int index) { OnChange(); RangeCheck(index); RemoveIndex(index); } override public void RemoveAt(string parameterName) { OnChange(); int index = CheckName(parameterName); RemoveIndex(index); } private void RemoveIndex(int index) { List items = InnerList; Debug.Assert((null != items) && (0 <= index) && (index < Count), "RemoveIndex, invalid"); EntityParameter item = items[index]; items.RemoveAt(index); item.ResetParent(); } private void Replace(int index, object newValue) { List items = InnerList; Debug.Assert((null != items) && (0 <= index) && (index < Count), "Replace Index invalid"); ValidateType(newValue); Validate(index, newValue); EntityParameter item = items[index]; items[index] = (EntityParameter)newValue; item.ResetParent(); } override protected void SetParameter(int index, DbParameter value) { OnChange(); RangeCheck(index); Replace(index, value); } override protected void SetParameter(string parameterName, DbParameter value) { OnChange(); int index = IndexOf(parameterName); if (index < 0) { throw ADP.ParametersSourceIndex(parameterName, this, ItemType); } Replace(index, value); } private void Validate(int index, object value) { if (null == value) { throw ADP.ParameterNull("value", this, ItemType); } object parent = ((EntityParameter)value).CompareExchangeParent(this, null); if (null != parent) { if (this != parent) { throw ADP.ParametersIsNotParent(ItemType, this); } if (index != IndexOf(value)) { throw ADP.ParametersIsParent(ItemType, this); } } String name = ((EntityParameter)value).ParameterName; if (0 == name.Length) { index = 1; do { name = ADP.Parameter + index.ToString(CultureInfo.CurrentCulture); index++; } while (-1 != IndexOf(name)); ((EntityParameter)value).ParameterName = name; } } private void ValidateType(object value) { if (null == value) { throw ADP.ParameterNull("value", this, ItemType); } else if (!ItemType.IsInstanceOfType(value)) { throw ADP.InvalidParameterType(this, ItemType, value); } } }; } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- CreateDataSourceDialog.cs
- MatrixAnimationUsingPath.cs
- CallbackHandler.cs
- RotationValidation.cs
- RegionIterator.cs
- StatusBarItem.cs
- Line.cs
- X509Certificate2Collection.cs
- MouseDevice.cs
- DoubleConverter.cs
- DocumentSchemaValidator.cs
- PartDesigner.cs
- OleDbRowUpdatedEvent.cs
- NonBatchDirectoryCompiler.cs
- FontStretches.cs
- TypedTableBaseExtensions.cs
- backend.cs
- StyleSelector.cs
- WhitespaceRule.cs
- CodeDOMUtility.cs
- Utility.cs
- ToolStripOverflowButton.cs
- WebBrowsableAttribute.cs
- HttpStreams.cs
- EventProperty.cs
- DataSourceView.cs
- PageCache.cs
- Hyperlink.cs
- DocumentPageHost.cs
- PropertyDescriptorGridEntry.cs
- ColorConvertedBitmapExtension.cs
- ReadOnlyCollectionBase.cs
- AlphaSortedEnumConverter.cs
- RowUpdatedEventArgs.cs
- ProgressBarBrushConverter.cs
- OuterGlowBitmapEffect.cs
- TableLayoutSettings.cs
- RadioButtonBaseAdapter.cs
- SemanticAnalyzer.cs
- MailWriter.cs
- IgnoreSectionHandler.cs
- Cloud.cs
- Composition.cs
- DataColumnMappingCollection.cs
- XmlSequenceWriter.cs
- CollectionChangedEventManager.cs
- MILUtilities.cs
- SQLMembershipProvider.cs
- TreeViewItem.cs
- IApplicationTrustManager.cs
- Size.cs
- DeleteHelper.cs
- LogicalTreeHelper.cs
- DSACryptoServiceProvider.cs
- PropertyInformation.cs
- DrawingVisualDrawingContext.cs
- M3DUtil.cs
- XmlDataSource.cs
- GlyphRunDrawing.cs
- DocumentDesigner.cs
- RetrieveVirtualItemEventArgs.cs
- DayRenderEvent.cs
- WindowsStartMenu.cs
- AsyncOperation.cs
- DataViewSetting.cs
- PropertyGridCommands.cs
- CatalogZone.cs
- CustomLineCap.cs
- EntityDataSource.cs
- EdmValidator.cs
- Authorization.cs
- LinqDataSourceUpdateEventArgs.cs
- ToolboxControl.cs
- RangeBase.cs
- TextEffectResolver.cs
- TextEditorCopyPaste.cs
- SqlBulkCopyColumnMapping.cs
- DataRecord.cs
- ADMembershipProvider.cs
- InputLangChangeRequestEvent.cs
- VersionValidator.cs
- RepeaterCommandEventArgs.cs
- WebScriptServiceHost.cs
- DataGridViewColumnTypeEditor.cs
- ping.cs
- PreProcessor.cs
- HttpRequest.cs
- DrawingContext.cs
- UriTemplateCompoundPathSegment.cs
- SmiContextFactory.cs
- MessageSmuggler.cs
- XmlDocumentFragment.cs
- ProviderException.cs
- ElementsClipboardData.cs
- DataRowExtensions.cs
- DocComment.cs
- DataReaderContainer.cs
- HtmlEncodedRawTextWriter.cs
- ProviderConnectionPoint.cs
- ObjectManager.cs