Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DLinq / Dlinq / SqlClient / Query / SqlTopReducer.cs / 1305376 / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- RightsManagementPermission.cs
- ProcessManager.cs
- SortKey.cs
- GlyphTypeface.cs
- TraceLevelStore.cs
- ErrorFormatter.cs
- TransformPatternIdentifiers.cs
- DialogDivider.cs
- TextTreePropertyUndoUnit.cs
- ProxyHelper.cs
- XpsFilter.cs
- ToolBar.cs
- __FastResourceComparer.cs
- CodePrimitiveExpression.cs
- OutputCacheSection.cs
- MemoryFailPoint.cs
- WebColorConverter.cs
- ConnectionManagementSection.cs
- PrintControllerWithStatusDialog.cs
- InputQueueChannel.cs
- DynamicField.cs
- MSAAEventDispatcher.cs
- DescendantOverDescendantQuery.cs
- QueryCacheManager.cs
- MyContact.cs
- SkinIDTypeConverter.cs
- UTF32Encoding.cs
- CmsUtils.cs
- IntellisenseTextBox.designer.cs
- CodeAssignStatement.cs
- ThaiBuddhistCalendar.cs
- OracleConnectionFactory.cs
- SpellCheck.cs
- PingOptions.cs
- MatrixKeyFrameCollection.cs
- ReferentialConstraintRoleElement.cs
- FormView.cs
- Vector3DKeyFrameCollection.cs
- SqlGenericUtil.cs
- PrefixQName.cs
- Expression.DebuggerProxy.cs
- EnumMemberAttribute.cs
- RegexRunnerFactory.cs
- GroupItemAutomationPeer.cs
- RangeBase.cs
- DataGridViewImageColumn.cs
- ClientBuildManagerCallback.cs
- CommonRemoteMemoryBlock.cs
- IsolatedStoragePermission.cs
- ValidateNames.cs
- XmlValueConverter.cs
- KeyValuePair.cs
- SecurityHeaderElementInferenceEngine.cs
- cookiecollection.cs
- SqlNotificationEventArgs.cs
- EventKeyword.cs
- IntSecurity.cs
- Queue.cs
- DoubleLinkList.cs
- GenericAuthenticationEventArgs.cs
- CatalogZoneBase.cs
- WebPartTransformer.cs
- Propagator.JoinPropagator.cs
- FileUpload.cs
- DiscardableAttribute.cs
- UIElementHelper.cs
- NavigationWindow.cs
- HuffmanTree.cs
- DataObjectCopyingEventArgs.cs
- ExceptionUtil.cs
- XmlSchemaProviderAttribute.cs
- WhitespaceRuleReader.cs
- DirectionalLight.cs
- Variant.cs
- SpeakInfo.cs
- DataRecordObjectView.cs
- PointLightBase.cs
- XmlAttributeProperties.cs
- TransportChannelListener.cs
- _FtpControlStream.cs
- WsatAdminException.cs
- ImportContext.cs
- StartFileNameEditor.cs
- DefaultAssemblyResolver.cs
- UriExt.cs
- Storyboard.cs
- RegistryKey.cs
- PrintingPermissionAttribute.cs
- keycontainerpermission.cs
- PropertyGridEditorPart.cs
- VirtualPathUtility.cs
- StylusPlugin.cs
- UpdateExpressionVisitor.cs
- DocumentAutomationPeer.cs
- HttpCookiesSection.cs
- SnapLine.cs
- CodeStatement.cs
- CTreeGenerator.cs
- SelectionRange.cs
- DataBoundControlHelper.cs