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
- DataMember.cs
- OleDbDataAdapter.cs
- CultureInfo.cs
- AppSettingsExpressionBuilder.cs
- ViewStateChangedEventArgs.cs
- WebPartDeleteVerb.cs
- XmlAttributes.cs
- DeclarativeCatalogPart.cs
- Floater.cs
- SQLString.cs
- Root.cs
- EntityContainer.cs
- SystemNetHelpers.cs
- InfoCardAsymmetricCrypto.cs
- ServiceErrorHandler.cs
- CheckBox.cs
- OrderByExpression.cs
- IndexedString.cs
- PeerHelpers.cs
- DataSourceHelper.cs
- HttpHandlerAction.cs
- CodeActivityContext.cs
- SimpleHandlerBuildProvider.cs
- Workspace.cs
- LayoutDump.cs
- DataTableClearEvent.cs
- RootProfilePropertySettingsCollection.cs
- DataGridCheckBoxColumn.cs
- ApplicationServiceManager.cs
- References.cs
- PathStreamGeometryContext.cs
- EventPropertyMap.cs
- PackageFilter.cs
- ToolBar.cs
- HandlerElement.cs
- XmlnsCache.cs
- WebPartConnectionCollection.cs
- SocketStream.cs
- FactoryGenerator.cs
- NameScopePropertyAttribute.cs
- LazyLoadBehavior.cs
- XmlQueryType.cs
- DiagnosticTrace.cs
- Int32CAMarshaler.cs
- updatecommandorderer.cs
- PropertyDescriptor.cs
- DataKey.cs
- ChannelSinkStacks.cs
- XmlDownloadManager.cs
- CompilerTypeWithParams.cs
- MDIControlStrip.cs
- SignedXml.cs
- NativeMethods.cs
- ContextConfiguration.cs
- CorrelationManager.cs
- TableLayoutColumnStyleCollection.cs
- QueryInterceptorAttribute.cs
- ApplicationId.cs
- OleDbStruct.cs
- ComponentEvent.cs
- ClientFormsIdentity.cs
- Tokenizer.cs
- SchemaImporterExtension.cs
- SystemTcpStatistics.cs
- FrameworkElement.cs
- DataGridViewTopLeftHeaderCell.cs
- XmlILConstructAnalyzer.cs
- ArgumentValidation.cs
- ToolStripItemGlyph.cs
- WebAdminConfigurationHelper.cs
- GiveFeedbackEventArgs.cs
- WriteFileContext.cs
- SignedXml.cs
- TextReturnReader.cs
- Decimal.cs
- KeyFrames.cs
- XmlUrlResolver.cs
- Header.cs
- HeaderedContentControl.cs
- WaitForChangedResult.cs
- DefaultHttpHandler.cs
- X509Utils.cs
- Buffer.cs
- RoleGroup.cs
- ConfigurationSettings.cs
- InputLanguageEventArgs.cs
- MetadataPropertyvalue.cs
- ComponentDispatcher.cs
- AlphabeticalEnumConverter.cs
- ContainerCodeDomSerializer.cs
- ProcessModelInfo.cs
- sqlser.cs
- DataGridView.cs
- EntityDataSource.cs
- LedgerEntry.cs
- ChtmlTextWriter.cs
- TagElement.cs
- NullableFloatMinMaxAggregationOperator.cs
- XmlJsonWriter.cs
- HostVisual.cs