Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DLinq / Dlinq / SqlClient / Common / SqlServer2KCompatibilityCheck.cs / 1305376 / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- QueryUtil.cs
- TitleStyle.cs
- X509AsymmetricSecurityKey.cs
- ByteKeyFrameCollection.cs
- WebReferencesBuildProvider.cs
- HotSpotCollection.cs
- SafeCryptoHandles.cs
- CompositeTypefaceMetrics.cs
- ClientBuildManager.cs
- securitycriticaldata.cs
- SafeSecurityHandles.cs
- FileSystemEventArgs.cs
- Int32Converter.cs
- DataSvcMapFile.cs
- PackageRelationship.cs
- ImageAnimator.cs
- OptionUsage.cs
- SizeFConverter.cs
- ComboBox.cs
- Token.cs
- LoginName.cs
- CodeCastExpression.cs
- ControlOperationBehavior.cs
- MessageBox.cs
- ColumnPropertiesGroup.cs
- PrinterUnitConvert.cs
- DataContext.cs
- XmlNodeWriter.cs
- Command.cs
- XsdBuilder.cs
- RowSpanVector.cs
- TemplatePropertyEntry.cs
- ComplexBindingPropertiesAttribute.cs
- DataKey.cs
- XmlLoader.cs
- RightsManagementInformation.cs
- FrameworkElementFactory.cs
- CompositeFontInfo.cs
- MembershipValidatePasswordEventArgs.cs
- listviewsubitemcollectioneditor.cs
- Bidi.cs
- DictationGrammar.cs
- XmlnsCompatibleWithAttribute.cs
- PathGeometry.cs
- TableStyle.cs
- TypeLoadException.cs
- ResourcePropertyMemberCodeDomSerializer.cs
- BamlBinaryWriter.cs
- CustomWebEventKey.cs
- XamlPoint3DCollectionSerializer.cs
- AssemblyNameEqualityComparer.cs
- SplitterCancelEvent.cs
- RankException.cs
- WS2007HttpBindingElement.cs
- VariantWrapper.cs
- StringValidatorAttribute.cs
- CodeNamespaceImportCollection.cs
- XPathItem.cs
- ProtocolsConfiguration.cs
- AppDomainFactory.cs
- DynamicResourceExtensionConverter.cs
- DiagnosticSection.cs
- EventProviderWriter.cs
- RIPEMD160Managed.cs
- Internal.cs
- IPCCacheManager.cs
- webbrowsersite.cs
- LifetimeServices.cs
- DataSourceGroupCollection.cs
- TimeoutException.cs
- coordinatorscratchpad.cs
- MemberPathMap.cs
- DataPagerFieldCollection.cs
- XamlFigureLengthSerializer.cs
- ProfileSettings.cs
- DPAPIProtectedConfigurationProvider.cs
- ButtonBase.cs
- Registration.cs
- BaseResourcesBuildProvider.cs
- ResizeBehavior.cs
- WindowsGraphics.cs
- VisualBrush.cs
- ObfuscationAttribute.cs
- RoutedEventHandlerInfo.cs
- AppDomainShutdownMonitor.cs
- METAHEADER.cs
- StreamAsIStream.cs
- PerformanceCounterManager.cs
- Facet.cs
- OdbcException.cs
- CodeMethodInvokeExpression.cs
- ObjectTokenCategory.cs
- AxisAngleRotation3D.cs
- designeractionbehavior.cs
- DataGridItem.cs
- EdmItemCollection.cs
- FunctionQuery.cs
- DefaultHttpHandler.cs
- ProfileModule.cs
- RangeValuePattern.cs