Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DLinq / Dlinq / SqlClient / SqlBuilder.cs / 1305376 / SqlBuilder.cs
using System; using System.Collections.Generic; using System.Diagnostics; using System.Data.SqlClient; using System.IO; using System.Linq; using System.Linq.Expressions; using System.Reflection; using System.Text; namespace System.Data.Linq.SqlClient { using System.Data.Linq.Mapping; using System.Data.Linq.Provider; using System.Diagnostics.CodeAnalysis; ////// Class for building up SQL DDL commands. /// internal static class SqlBuilder { internal static string GetCreateDatabaseCommand(string catalog, string dataFilename, string logFilename) { StringBuilder sb = new StringBuilder(); sb.AppendFormat("CREATE DATABASE {0}", SqlIdentifier.QuoteIdentifier(catalog)); if (dataFilename != null) { sb.AppendFormat(" ON PRIMARY (NAME='{0}', FILENAME='{1}')", Path.GetFileName(dataFilename), dataFilename); sb.AppendFormat(" LOG ON (NAME='{0}', FILENAME='{1}')", Path.GetFileName(logFilename), logFilename); } return sb.ToString(); } internal static string GetDropDatabaseCommand(string catalog) { StringBuilder sb = new StringBuilder(); sb.AppendFormat("DROP DATABASE {0}", SqlIdentifier.QuoteIdentifier(catalog)); return sb.ToString(); } internal static string GetCreateSchemaForTableCommand(MetaTable table) { StringBuilder sb = new StringBuilder(); Listparts = new List (SqlIdentifier.GetCompoundIdentifierParts(table.TableName)); // table names look like this in Yukon (according to MSDN): // [ database_name . [ schema_name ] . | schema_name . ] table_name // ... which means that either way, the schema name is the second to last part. if ((parts.Count) < 2) { return null; } string schema = parts[parts.Count - 2]; if (String.Compare(schema, "DBO", StringComparison.OrdinalIgnoreCase) != 0 && String.Compare(schema, "[DBO]", StringComparison.OrdinalIgnoreCase) != 0) { sb.AppendFormat("CREATE SCHEMA {0}", SqlIdentifier.QuoteIdentifier(schema)); } return sb.ToString(); } internal static string GetCreateTableCommand(MetaTable table) { StringBuilder sb = new StringBuilder(); StringBuilder decl = new StringBuilder(); BuildFieldDeclarations(table, decl); sb.AppendFormat("CREATE TABLE {0}", SqlIdentifier.QuoteCompoundIdentifier(table.TableName)); sb.Append("("); sb.Append(decl.ToString()); decl = new StringBuilder(); BuildPrimaryKey(table, decl); if (decl.Length > 0) { string name = String.Format(Globalization.CultureInfo.InvariantCulture, "PK_{0}", table.TableName); sb.Append(", "); sb.AppendLine(); sb.AppendFormat(" CONSTRAINT {0} PRIMARY KEY ({1})", SqlIdentifier.QuoteIdentifier(name), decl.ToString()); } sb.AppendLine(); sb.Append(" )"); return sb.ToString(); } internal static void BuildFieldDeclarations(MetaTable table, StringBuilder sb) { int n = 0; Dictionary
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- InternalBufferManager.cs
- List.cs
- MostlySingletonList.cs
- ParagraphVisual.cs
- MouseBinding.cs
- GlobalProxySelection.cs
- StoreAnnotationsMap.cs
- DataGridViewRowHeightInfoNeededEventArgs.cs
- Mapping.cs
- HierarchicalDataBoundControl.cs
- BitmapPalette.cs
- ToolboxBitmapAttribute.cs
- DataGridViewComboBoxCell.cs
- ListViewCancelEventArgs.cs
- Rijndael.cs
- UpdateEventArgs.cs
- _RequestCacheProtocol.cs
- XmlComplianceUtil.cs
- BaseTemplateParser.cs
- SmiEventSink_Default.cs
- HtmlTableCell.cs
- PlainXmlSerializer.cs
- PasswordRecoveryDesigner.cs
- SqlFactory.cs
- DetailsViewDeletedEventArgs.cs
- CredentialCache.cs
- TableStyle.cs
- ComponentCommands.cs
- AttachedAnnotationChangedEventArgs.cs
- ResourceKey.cs
- FragmentNavigationEventArgs.cs
- TypeConverterHelper.cs
- DecoderNLS.cs
- Paragraph.cs
- Funcletizer.cs
- DataGridViewCell.cs
- CollectionViewGroup.cs
- SecurityTokenProvider.cs
- GridViewCommandEventArgs.cs
- ContravarianceAdapter.cs
- PackageFilter.cs
- DesignTimeTemplateParser.cs
- TrustLevel.cs
- MessageBuffer.cs
- WindowInteractionStateTracker.cs
- ToolboxItemFilterAttribute.cs
- XmlnsDefinitionAttribute.cs
- Group.cs
- Soap.cs
- DataBoundControlHelper.cs
- DataBindingCollection.cs
- ReflectionUtil.cs
- CacheDependency.cs
- cookie.cs
- ServerValidateEventArgs.cs
- MissingFieldException.cs
- AttachmentCollection.cs
- RecognizerInfo.cs
- ListItemCollection.cs
- EditorZoneDesigner.cs
- Exception.cs
- Util.cs
- OleDbConnectionInternal.cs
- WindowsPen.cs
- cryptoapiTransform.cs
- ToolboxItemLoader.cs
- PrintController.cs
- DbConnectionPool.cs
- ContentFilePart.cs
- ExecutionContext.cs
- EventLogConfiguration.cs
- UserPreferenceChangedEventArgs.cs
- WebAdminConfigurationHelper.cs
- PipelineModuleStepContainer.cs
- SqlColumnizer.cs
- SqlRetyper.cs
- DbProviderConfigurationHandler.cs
- ListSortDescriptionCollection.cs
- XmlValidatingReaderImpl.cs
- OlePropertyStructs.cs
- TempEnvironment.cs
- NamespaceDecl.cs
- EmptyStringExpandableObjectConverter.cs
- Expander.cs
- StorageInfo.cs
- DayRenderEvent.cs
- OperationCanceledException.cs
- OptimizerPatterns.cs
- AtlasWeb.Designer.cs
- MouseActionValueSerializer.cs
- GradientStopCollection.cs
- RegexNode.cs
- XmlFormatExtensionPrefixAttribute.cs
- CreateUserWizard.cs
- sqlcontext.cs
- Page.cs
- MD5HashHelper.cs
- Transform3D.cs
- CollectionChangeEventArgs.cs
- PriorityChain.cs