Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / ndp / fx / src / DLinq / Dlinq / SqlClient / Common / SqlServer2KCompatibilityCheck.cs / 1 / SqlServer2KCompatibilityCheck.cs
using System; using System.Collections.ObjectModel; using System.Text; namespace System.Data.Linq.SqlClient { ////// Methods for checking whethe a query was compatible with the /// server it will be sent to. /// static internal class SqlServerCompatibilityCheck { ////// Private visitor class checks each node for compatibility annotations. /// private class Visitor : SqlVisitor { private SqlProvider.ProviderMode provider; internal SqlNodeAnnotations annotations; internal Visitor(SqlProvider.ProviderMode provider) { this.provider = provider; } ////// The reasons why this query is not 2K compatible. /// internal Collectionreasons = new Collection (); internal override SqlNode Visit(SqlNode node) { if (annotations.NodeIsAnnotated(node)) { foreach (SqlNodeAnnotation annotation in annotations.Get(node)) { SqlServerCompatibilityAnnotation ssca = annotation as SqlServerCompatibilityAnnotation; if (ssca != null && ssca.AppliesTo(provider)) { reasons.Add(annotation.Message); } } } return base.Visit(node); } } /// /// Checks whether the given node is supported on the given server. /// internal static void ThrowIfUnsupported(SqlNode node, SqlNodeAnnotations annotations, SqlProvider.ProviderMode provider) { // Check to see whether there's at least one SqlServerCompatibilityAnnotation. if (annotations.HasAnnotationType(typeof(SqlServerCompatibilityAnnotation))) { Visitor visitor = new Visitor(provider); visitor.annotations = annotations; visitor.Visit(node); // If any messages were recorded, then throw an exception. if (visitor.reasons.Count > 0) { throw Error.ExpressionNotSupportedForSqlServerVersion(visitor.reasons); } } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. using System; using System.Collections.ObjectModel; using System.Text; namespace System.Data.Linq.SqlClient { ////// Methods for checking whethe a query was compatible with the /// server it will be sent to. /// static internal class SqlServerCompatibilityCheck { ////// Private visitor class checks each node for compatibility annotations. /// private class Visitor : SqlVisitor { private SqlProvider.ProviderMode provider; internal SqlNodeAnnotations annotations; internal Visitor(SqlProvider.ProviderMode provider) { this.provider = provider; } ////// The reasons why this query is not 2K compatible. /// internal Collectionreasons = new Collection (); internal override SqlNode Visit(SqlNode node) { if (annotations.NodeIsAnnotated(node)) { foreach (SqlNodeAnnotation annotation in annotations.Get(node)) { SqlServerCompatibilityAnnotation ssca = annotation as SqlServerCompatibilityAnnotation; if (ssca != null && ssca.AppliesTo(provider)) { reasons.Add(annotation.Message); } } } return base.Visit(node); } } /// /// Checks whether the given node is supported on the given server. /// internal static void ThrowIfUnsupported(SqlNode node, SqlNodeAnnotations annotations, SqlProvider.ProviderMode provider) { // Check to see whether there's at least one SqlServerCompatibilityAnnotation. if (annotations.HasAnnotationType(typeof(SqlServerCompatibilityAnnotation))) { Visitor visitor = new Visitor(provider); visitor.annotations = annotations; visitor.Visit(node); // If any messages were recorded, then throw an exception. if (visitor.reasons.Count > 0) { throw Error.ExpressionNotSupportedForSqlServerVersion(visitor.reasons); } } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Pair.cs
- TextTreeUndo.cs
- SymLanguageVendor.cs
- ButtonBase.cs
- XamlParser.cs
- Trace.cs
- LinearGradientBrush.cs
- OperationParameterInfoCollection.cs
- DurableEnlistmentState.cs
- SettingsPropertyValueCollection.cs
- ProcessProtocolHandler.cs
- Timeline.cs
- MappingException.cs
- Section.cs
- ExpressionConverter.cs
- shaperfactory.cs
- TiffBitmapDecoder.cs
- ProcessProtocolHandler.cs
- HttpCookie.cs
- EntityType.cs
- CapabilitiesRule.cs
- streamingZipPartStream.cs
- ADRole.cs
- XmlnsCache.cs
- HierarchicalDataSourceConverter.cs
- RestClientProxyHandler.cs
- IndentTextWriter.cs
- BasicCellRelation.cs
- WindowsFormsSectionHandler.cs
- SqlReorderer.cs
- ADMembershipProvider.cs
- SynchronizedKeyedCollection.cs
- DeviceSpecificChoice.cs
- AutomationPeer.cs
- DNS.cs
- webclient.cs
- MailWriter.cs
- FilterUserControlBase.cs
- HttpCookiesSection.cs
- AdornedElementPlaceholder.cs
- CryptoApi.cs
- RequiredFieldValidator.cs
- CodeAttributeArgument.cs
- PageHandlerFactory.cs
- Constraint.cs
- BindableAttribute.cs
- Processor.cs
- Vector3DCollectionValueSerializer.cs
- XmlHelper.cs
- AndMessageFilter.cs
- FixedElement.cs
- ActiveXContainer.cs
- SQLMoney.cs
- DoubleMinMaxAggregationOperator.cs
- CodeAttributeArgument.cs
- ElementMarkupObject.cs
- RuntimeConfig.cs
- TemplateInstanceAttribute.cs
- MyContact.cs
- SecureStringHasher.cs
- EventRoute.cs
- TextElement.cs
- SessionEndingEventArgs.cs
- ControlHelper.cs
- COM2IProvidePropertyBuilderHandler.cs
- ObjectDataSourceWizardForm.cs
- XMLUtil.cs
- GorillaCodec.cs
- MultipartIdentifier.cs
- WebPartEditorApplyVerb.cs
- VersionUtil.cs
- Profiler.cs
- UrlParameterWriter.cs
- NextPreviousPagerField.cs
- BaseParagraph.cs
- ActivityDefaults.cs
- SqlDataSourceCommandEventArgs.cs
- CheckBox.cs
- MulticastDelegate.cs
- TreeNodeStyle.cs
- BitmapEncoder.cs
- InfoCardBaseException.cs
- PerformanceCounter.cs
- DesignerObject.cs
- SynchronizationContext.cs
- TagNameToTypeMapper.cs
- QilScopedVisitor.cs
- AccessedThroughPropertyAttribute.cs
- WindowsClaimSet.cs
- TextBoxBaseDesigner.cs
- XmlMapping.cs
- ObjectItemCollectionAssemblyCacheEntry.cs
- FormClosedEvent.cs
- StylusButtonEventArgs.cs
- BuildProvider.cs
- DataServiceRequestException.cs
- XmlValidatingReaderImpl.cs
- Int16AnimationBase.cs
- XmlSchemaValidationException.cs
- WebRequestModuleElementCollection.cs