Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / ndp / fx / src / DLinq / Dlinq / SqlClient / Query / SqlTopReducer.cs / 1 / SqlTopReducer.cs
using System; using System.Collections.Generic; using System.Linq.Expressions; using System.Reflection; using System.Data.Linq; using System.Data.Linq.Provider; using System.Linq; namespace System.Data.Linq.SqlClient { internal class SqlTopReducer { internal static SqlNode Reduce(SqlNode node, SqlNodeAnnotations annotations, SqlFactory sql) { return new Visitor(annotations, sql).Visit(node); } class Visitor : SqlVisitor { SqlNodeAnnotations annotations; SqlFactory sql; internal Visitor(SqlNodeAnnotations annotations, SqlFactory sql) { this.annotations = annotations; this.sql = sql; } internal override SqlSelect VisitSelect(SqlSelect select) { base.VisitSelect(select); if (select.Top != null) { if (select.Top.NodeType == SqlNodeType.Value) { SqlValue val = (SqlValue)select.Top; // convert to literal value for SQL2K compatibility if (val.IsClientSpecified) { select.Top = sql.Value(val.ClrType, val.SqlType, val.Value, false, val.SourceExpression); } } else { // cannot be converted to literal value. note that this select is not SQL2K compatible this.annotations.Add(select.Top, new SqlServerCompatibilityAnnotation(Strings.SourceExpressionAnnotation(select.Top.SourceExpression), SqlProvider.ProviderMode.Sql2000)); } } return select; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. using System; using System.Collections.Generic; using System.Linq.Expressions; using System.Reflection; using System.Data.Linq; using System.Data.Linq.Provider; using System.Linq; namespace System.Data.Linq.SqlClient { internal class SqlTopReducer { internal static SqlNode Reduce(SqlNode node, SqlNodeAnnotations annotations, SqlFactory sql) { return new Visitor(annotations, sql).Visit(node); } class Visitor : SqlVisitor { SqlNodeAnnotations annotations; SqlFactory sql; internal Visitor(SqlNodeAnnotations annotations, SqlFactory sql) { this.annotations = annotations; this.sql = sql; } internal override SqlSelect VisitSelect(SqlSelect select) { base.VisitSelect(select); if (select.Top != null) { if (select.Top.NodeType == SqlNodeType.Value) { SqlValue val = (SqlValue)select.Top; // convert to literal value for SQL2K compatibility if (val.IsClientSpecified) { select.Top = sql.Value(val.ClrType, val.SqlType, val.Value, false, val.SourceExpression); } } else { // cannot be converted to literal value. note that this select is not SQL2K compatible this.annotations.Add(select.Top, new SqlServerCompatibilityAnnotation(Strings.SourceExpressionAnnotation(select.Top.SourceExpression), SqlProvider.ProviderMode.Sql2000)); } } return select; } } } } // 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
- securitycriticaldataClass.cs
- TextDecorationCollection.cs
- CompilerResults.cs
- ClientApiGenerator.cs
- SecurityTokenResolver.cs
- MimeTypeMapper.cs
- BrowserInteropHelper.cs
- FilterQuery.cs
- DropShadowBitmapEffect.cs
- SelectQueryOperator.cs
- Context.cs
- SizeConverter.cs
- WebPartCatalogAddVerb.cs
- TranslateTransform.cs
- Constraint.cs
- FontFamilyIdentifier.cs
- XmlSchemaAnnotation.cs
- DirectionalLight.cs
- ContractsBCL.cs
- MergablePropertyAttribute.cs
- WebHeaderCollection.cs
- RepeaterItem.cs
- TextParagraphCache.cs
- ObjectDataSourceMethodEditor.cs
- ValidateNames.cs
- XmlValidatingReaderImpl.cs
- Pen.cs
- GlyphShapingProperties.cs
- QueryStringParameter.cs
- PersistenceMetadataNamespace.cs
- ViewBase.cs
- ContextMenuAutomationPeer.cs
- XmlSchemaSimpleContent.cs
- CompilationSection.cs
- X509RecipientCertificateServiceElement.cs
- cookiecontainer.cs
- ListViewInsertEventArgs.cs
- RemotingSurrogateSelector.cs
- JsonMessageEncoderFactory.cs
- XMLDiffLoader.cs
- DragCompletedEventArgs.cs
- ImageConverter.cs
- HierarchicalDataTemplate.cs
- BaseHashHelper.cs
- ListItemParagraph.cs
- ComAwareEventInfo.cs
- XmlSchemaGroupRef.cs
- XmlHierarchicalEnumerable.cs
- InputLanguageManager.cs
- FixedSOMSemanticBox.cs
- ObjectTag.cs
- XmlDataImplementation.cs
- SeverityFilter.cs
- Number.cs
- XmlILIndex.cs
- XmlnsDictionary.cs
- DefaultAuthorizationContext.cs
- EntityDataSourceReferenceGroup.cs
- ColorTransform.cs
- InvalidWMPVersionException.cs
- RecipientInfo.cs
- HtmlInputText.cs
- Trustee.cs
- XmlText.cs
- RenamedEventArgs.cs
- DynamicQueryableWrapper.cs
- NameNode.cs
- XamlFrame.cs
- EntityDataSourceQueryBuilder.cs
- GridViewRowCollection.cs
- AuthorizationRuleCollection.cs
- SapiInterop.cs
- TextSimpleMarkerProperties.cs
- ProcessManager.cs
- TextStore.cs
- InvalidComObjectException.cs
- DynamicRenderer.cs
- ControlValuePropertyAttribute.cs
- NativeMethods.cs
- StrokeDescriptor.cs
- SQLDecimalStorage.cs
- StyleHelper.cs
- TextEffectCollection.cs
- XhtmlCssHandler.cs
- ListViewSortEventArgs.cs
- SwitchCase.cs
- KeyNotFoundException.cs
- KeyBinding.cs
- TrackingMemoryStream.cs
- StorageMappingItemLoader.cs
- MobileResource.cs
- CharEnumerator.cs
- LogEntryDeserializer.cs
- SchemaComplexType.cs
- ServiceThrottlingBehavior.cs
- RegistryPermission.cs
- ExpandSegment.cs
- CodeSubDirectoriesCollection.cs
- FusionWrap.cs
- PropertyChangeTracker.cs