Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / ndp / fx / src / DataEntity / System / Data / Common / CommandTrees / DbInsertCommandTree.cs / 2 / DbInsertCommandTree.cs
//----------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//
// @owner [....], [....]
//---------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Data.Metadata.Edm;
using System.Data.Common.CommandTrees.Internal;
using System.Data.Common.Utils;
using System.Diagnostics;
using System.Collections.ObjectModel;
namespace System.Data.Common.CommandTrees
{
///
/// Represents a single row insert operation expressed as a canonical command tree.
/// When the property is set, the command returns a reader; otherwise,
/// it returns a scalar value indicating the number of rows affected.
///
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "Db")]
public sealed class DbInsertCommandTree : DbModificationCommandTree
{
private IList _setClauses;
private DbExpression _returning;
internal DbInsertCommandTree(MetadataWorkspace metadata, DataSpace dataSpace)
: base(metadata, dataSpace)
{
}
///
/// Gets set clauses determining values of columns in the inserted row.
///
public IList SetClauses
{
get
{
return _setClauses;
}
}
///
/// Gets an that specifies a projection of results to be returned based on the modified rows.
/// If null, indicates no results should be returned from this command.
///
///
/// The returning projection includes only the following elements:
///
/// - NewInstance expression
/// - Property expression
///
///
public DbExpression Returning
{
get
{
return _returning;
}
internal set
{
_returning = value;
}
}
internal override DbCommandTreeKind CommandTreeKind
{
get { return DbCommandTreeKind.Insert; }
}
internal override bool HasReader
{
get { return null != Returning; }
}
internal override void DumpStructure(ExpressionDumper dumper)
{
base.DumpStructure(dumper);
dumper.Begin("SetClauses");
foreach (DbModificationClause clause in this.SetClauses)
{
if (null != clause)
{
clause.DumpStructure(dumper);
}
}
dumper.End("SetClauses");
if (null != this.Returning)
{
dumper.Dump(this.Returning, "Returning");
}
}
internal override string PrintTree(ExpressionPrinter printer)
{
return printer.Print(this);
}
internal override void Replace(ExpressionReplacer replacer)
{
using (new EntityBid.ScopeAuto(" %d#", this.ObjectId))
{
throw EntityUtil.NotSupported();
}
}
///
/// Initializes set clauses on this command tree.
///
/// Set clauses.
internal void InitializeSetClauses(List setClauses)
{
Debug.Assert(null != setClauses, "setClauses cannot be null");
_setClauses = setClauses.AsReadOnly();
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//----------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//
// @owner [....], [....]
//---------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Data.Metadata.Edm;
using System.Data.Common.CommandTrees.Internal;
using System.Data.Common.Utils;
using System.Diagnostics;
using System.Collections.ObjectModel;
namespace System.Data.Common.CommandTrees
{
///
/// Represents a single row insert operation expressed as a canonical command tree.
/// When the property is set, the command returns a reader; otherwise,
/// it returns a scalar value indicating the number of rows affected.
///
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "Db")]
public sealed class DbInsertCommandTree : DbModificationCommandTree
{
private IList _setClauses;
private DbExpression _returning;
internal DbInsertCommandTree(MetadataWorkspace metadata, DataSpace dataSpace)
: base(metadata, dataSpace)
{
}
///
/// Gets set clauses determining values of columns in the inserted row.
///
public IList SetClauses
{
get
{
return _setClauses;
}
}
///
/// Gets an that specifies a projection of results to be returned based on the modified rows.
/// If null, indicates no results should be returned from this command.
///
///
/// The returning projection includes only the following elements:
///
/// - NewInstance expression
/// - Property expression
///
///
public DbExpression Returning
{
get
{
return _returning;
}
internal set
{
_returning = value;
}
}
internal override DbCommandTreeKind CommandTreeKind
{
get { return DbCommandTreeKind.Insert; }
}
internal override bool HasReader
{
get { return null != Returning; }
}
internal override void DumpStructure(ExpressionDumper dumper)
{
base.DumpStructure(dumper);
dumper.Begin("SetClauses");
foreach (DbModificationClause clause in this.SetClauses)
{
if (null != clause)
{
clause.DumpStructure(dumper);
}
}
dumper.End("SetClauses");
if (null != this.Returning)
{
dumper.Dump(this.Returning, "Returning");
}
}
internal override string PrintTree(ExpressionPrinter printer)
{
return printer.Print(this);
}
internal override void Replace(ExpressionReplacer replacer)
{
using (new EntityBid.ScopeAuto(" %d#", this.ObjectId))
{
throw EntityUtil.NotSupported();
}
}
///
/// Initializes set clauses on this command tree.
///
/// Set clauses.
internal void InitializeSetClauses(List setClauses)
{
Debug.Assert(null != setClauses, "setClauses cannot be null");
_setClauses = setClauses.AsReadOnly();
}
}
}
// 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
- AuthenticationSection.cs
- PluralizationService.cs
- TargetConverter.cs
- bindurihelper.cs
- Identity.cs
- ColumnCollection.cs
- Random.cs
- SafeHandles.cs
- LostFocusEventManager.cs
- AggregatePushdown.cs
- GridItem.cs
- PanelStyle.cs
- bidPrivateBase.cs
- TagNameToTypeMapper.cs
- DynamicDiscoveryDocument.cs
- CustomAttributeSerializer.cs
- HttpProfileBase.cs
- DataGridViewHitTestInfo.cs
- BaseAddressPrefixFilterElementCollection.cs
- SqlSupersetValidator.cs
- RequestSecurityToken.cs
- UnsafeNativeMethods.cs
- X509SecurityTokenAuthenticator.cs
- EditorPartCollection.cs
- FixedSOMPage.cs
- SchemaImporterExtensionsSection.cs
- SqlFlattener.cs
- EmptyStringExpandableObjectConverter.cs
- DependencyPropertyKey.cs
- PersistenceTypeAttribute.cs
- DefaultTextStore.cs
- AssemblyCollection.cs
- Typeface.cs
- RandomNumberGenerator.cs
- HttpModuleActionCollection.cs
- PreloadedPackages.cs
- GridView.cs
- WeakKeyDictionary.cs
- WebPartConnectionsCancelEventArgs.cs
- DoubleCollectionValueSerializer.cs
- XmlValidatingReader.cs
- NoneExcludedImageIndexConverter.cs
- GACMembershipCondition.cs
- MsmqIntegrationAppDomainProtocolHandler.cs
- TextDecorationLocationValidation.cs
- StyleCollection.cs
- Variant.cs
- ExecutionContext.cs
- Converter.cs
- QilReplaceVisitor.cs
- RSACryptoServiceProvider.cs
- Point3DCollectionConverter.cs
- StaticDataManager.cs
- OleDbTransaction.cs
- SourceItem.cs
- DataGridViewCellCollection.cs
- SourceInterpreter.cs
- FlowchartStart.xaml.cs
- PinProtectionHelper.cs
- InvalidPropValue.cs
- XmlLanguage.cs
- CalendarDay.cs
- TableLayoutStyle.cs
- DeclaredTypeValidator.cs
- TextOptions.cs
- LinkedResource.cs
- basemetadatamappingvisitor.cs
- LoadWorkflowCommand.cs
- RotateTransform3D.cs
- ControlCachePolicy.cs
- UntypedNullExpression.cs
- EnumCodeDomSerializer.cs
- ImageListStreamer.cs
- EntryPointNotFoundException.cs
- GridViewDeleteEventArgs.cs
- VBCodeProvider.cs
- ValueProviderWrapper.cs
- PathFigure.cs
- SocketInformation.cs
- SoapRpcServiceAttribute.cs
- DESCryptoServiceProvider.cs
- CodeTypeMember.cs
- Publisher.cs
- LogicalChannelCollection.cs
- SqlBulkCopy.cs
- FileDialog.cs
- ListItemConverter.cs
- GiveFeedbackEventArgs.cs
- SecurityKeyEntropyMode.cs
- JpegBitmapDecoder.cs
- HttpListenerPrefixCollection.cs
- MenuItemBinding.cs
- X509CertificateInitiatorServiceCredential.cs
- MsdtcClusterUtils.cs
- Literal.cs
- ReverseComparer.cs
- WebPartDeleteVerb.cs
- XmlArrayAttribute.cs
- FlowDocumentFormatter.cs
- SqlCommand.cs