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
- NotifyParentPropertyAttribute.cs
- COM2IDispatchConverter.cs
- TransformValueSerializer.cs
- DetailsViewModeEventArgs.cs
- UpdateTranslator.cs
- clipboard.cs
- DomainUpDown.cs
- XsdDuration.cs
- SplitterEvent.cs
- Point4DValueSerializer.cs
- GACIdentityPermission.cs
- HttpRequest.cs
- DefaultObjectSerializer.cs
- CommandBinding.cs
- DiscoveryDocument.cs
- VideoDrawing.cs
- RotateTransform.cs
- HiddenFieldPageStatePersister.cs
- CaseInsensitiveComparer.cs
- ByteAnimation.cs
- PageClientProxyGenerator.cs
- FontFamilyConverter.cs
- DBSchemaRow.cs
- StateWorkerRequest.cs
- SizeAnimation.cs
- SeverityFilter.cs
- ObjectHelper.cs
- TreeIterator.cs
- ProfileManager.cs
- XmlFileEditor.cs
- _HeaderInfo.cs
- TypeConverter.cs
- AssemblyAttributesGoHere.cs
- SqlCommandSet.cs
- RangeContentEnumerator.cs
- StoreConnection.cs
- HttpHandlerActionCollection.cs
- AdPostCacheSubstitution.cs
- OptimisticConcurrencyException.cs
- PointLight.cs
- QueryInterceptorAttribute.cs
- AttributeTable.cs
- AttributeProviderAttribute.cs
- HttpWebRequest.cs
- DataGridViewMethods.cs
- SortDescriptionCollection.cs
- BitmapCacheBrush.cs
- XmlUtil.cs
- TreeNode.cs
- ColumnWidthChangedEvent.cs
- TableLayoutSettingsTypeConverter.cs
- ResourceIDHelper.cs
- EditingCommands.cs
- ZeroOpNode.cs
- HebrewCalendar.cs
- UrlPath.cs
- DrawingGroup.cs
- WebCategoryAttribute.cs
- EntityClientCacheKey.cs
- PauseStoryboard.cs
- MethodRental.cs
- TextServicesCompartmentEventSink.cs
- FontConverter.cs
- MultiSelectRootGridEntry.cs
- WebUtil.cs
- InProcStateClientManager.cs
- Environment.cs
- DataGridColumn.cs
- JsonEncodingStreamWrapper.cs
- HttpListenerElement.cs
- bindurihelper.cs
- ZipIOLocalFileBlock.cs
- Hashtable.cs
- FileDialogCustomPlaces.cs
- FormsAuthentication.cs
- MobileTextWriter.cs
- sqlcontext.cs
- ThemeableAttribute.cs
- TimeoutHelper.cs
- CollectionBase.cs
- COM2FontConverter.cs
- CategoryNameCollection.cs
- DataPointer.cs
- DataStorage.cs
- TemporaryBitmapFile.cs
- ModelPropertyDescriptor.cs
- DependencyObjectProvider.cs
- EpmContentSerializer.cs
- ResponseStream.cs
- ProviderMetadata.cs
- DrawingVisual.cs
- ServiceAuthorizationElement.cs
- PartialCachingControl.cs
- HwndTarget.cs
- CaseExpr.cs
- TextViewElement.cs
- RestClientProxyHandler.cs
- BasicKeyConstraint.cs
- GenericAuthenticationEventArgs.cs
- Axis.cs