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
- SecurityUtils.cs
- ExpanderAutomationPeer.cs
- codemethodreferenceexpression.cs
- AdapterSwitches.cs
- WSSecurityPolicy.cs
- BindingsCollection.cs
- Vector3DConverter.cs
- HMACSHA256.cs
- DrawingContext.cs
- FormsAuthenticationTicket.cs
- handlecollector.cs
- BindableTemplateBuilder.cs
- Baml2006ReaderSettings.cs
- RangeBase.cs
- FileNotFoundException.cs
- PropertyKey.cs
- SmiTypedGetterSetter.cs
- SEHException.cs
- RSAPKCS1KeyExchangeFormatter.cs
- JavaScriptString.cs
- SecuritySessionSecurityTokenAuthenticator.cs
- ClonableStack.cs
- QueryConverter.cs
- DesignerSerializationManager.cs
- CallbackValidatorAttribute.cs
- DocumentPropertiesDialog.cs
- IconEditor.cs
- FormsAuthenticationConfiguration.cs
- ZipIOLocalFileHeader.cs
- FreezableOperations.cs
- PieceDirectory.cs
- HtmlFormWrapper.cs
- SettingsAttributes.cs
- CodeSubDirectoriesCollection.cs
- HwndSubclass.cs
- BitmapDecoder.cs
- Int64Storage.cs
- ActivitySurrogate.cs
- StringCollectionMarkupSerializer.cs
- WebPartCollection.cs
- SchemaCollectionCompiler.cs
- FieldNameLookup.cs
- _CommandStream.cs
- UnknownWrapper.cs
- ConsoleEntryPoint.cs
- TextLineResult.cs
- TreeNodeCollection.cs
- MenuItemBinding.cs
- ListBoxChrome.cs
- COAUTHINFO.cs
- XmlSchemaExternal.cs
- RC2CryptoServiceProvider.cs
- StrokeNodeOperations.cs
- DataGridPageChangedEventArgs.cs
- InternalResources.cs
- X509Certificate2.cs
- MatrixTransform3D.cs
- Int64AnimationBase.cs
- HttpException.cs
- DataObjectSettingDataEventArgs.cs
- ScriptRegistrationManager.cs
- DbgCompiler.cs
- WebPartRestoreVerb.cs
- XmlUnspecifiedAttribute.cs
- XmlSchemaRedefine.cs
- SignatureToken.cs
- coordinatorscratchpad.cs
- DesignerView.cs
- HttpGetProtocolImporter.cs
- TypeReference.cs
- AudioException.cs
- DataGridViewAccessibleObject.cs
- ProfileBuildProvider.cs
- ProxyGenerator.cs
- EntityClassGenerator.cs
- FontDifferentiator.cs
- WorkflowDesigner.cs
- RestHandler.cs
- XmlIlGenerator.cs
- CodeSnippetExpression.cs
- ItemType.cs
- WinInetCache.cs
- EvidenceBase.cs
- GuidelineCollection.cs
- ComponentResourceManager.cs
- DataTable.cs
- SoapSchemaExporter.cs
- XmlSchemaParticle.cs
- _NegotiateClient.cs
- LambdaCompiler.ControlFlow.cs
- UInt64.cs
- _KerberosClient.cs
- DataStorage.cs
- ContextInformation.cs
- QilFactory.cs
- DesignerAttribute.cs
- translator.cs
- UrlMappingCollection.cs
- MemoryStream.cs
- StrongNameUtility.cs