/// <summary>The build tool tip.</summary> /// <param name="table">The table.</param> /// <param name="column">The column.</param> /// <returns>The build tool tip.</returns> private string BuildToolTip(DbModelTable table, DbModelColumn column) { string friendlyColumnName = Utility.MakeSqlFriendly(column.Name); string toolTip = table.FullName + "." + friendlyColumnName; if (column.IsKey) { toolTip += "; Primary Key"; } if (column.IsAutoIncrement) { toolTip += "; Auto*"; } if (column.ForeignKeyReference != null) { toolTip += string.Format("; FK -> {0}.{1}", column.ForeignKeyReference.ReferenceTable.FullName, column.ForeignKeyReference.ReferenceColumn.Name); } if (column.IsReadOnly) { toolTip += "; Read Only"; } return(toolTip); }
/// <summary>The navigate to.</summary> /// <param name="modelObject">The model object.</param> public void NavigateTo(IDbModelNamedObject modelObject) { if (modelObject == null) { return; } switch (modelObject.ObjectType) { case ObjectTypes.Table: foreach (TreeNode treeNode in _tablesNode.Nodes) { IDbModelNamedObject obj = treeNode.Tag as IDbModelNamedObject; if (obj != null && modelObject == obj) { SelectNode(treeNode); } } break; case ObjectTypes.View: foreach (TreeNode treeNode in _viewsNode.Nodes) { IDbModelNamedObject obj = treeNode.Tag as IDbModelNamedObject; if (obj != null && modelObject == obj) { SelectNode(treeNode); } } break; case ObjectTypes.Column: DbModelColumn modelColumn = modelObject as DbModelColumn; if (modelColumn != null) { foreach (TreeNode treeNode in _tablesNode.Nodes) { // only look in the tables nodw for FK refs DbModelTable modelTable = treeNode.Tag as DbModelTable; if (modelTable != null && modelTable == modelColumn.ParentTable) { // now find the column in the child nodes foreach (TreeNode columnNode in treeNode.Nodes) { DbModelColumn modelReferingColumn = columnNode.Tag as DbModelColumn; if (modelReferingColumn != null && modelReferingColumn == modelColumn) { SelectNode(columnNode); } } } } } break; } }
/// <summary>Execute the command.</summary> public override void Execute() { DbModelColumn column = HostWindow.DatabaseInspector.RightClickedModelObject as DbModelColumn; if (column != null && column.ForeignKeyReference != null) { HostWindow.DatabaseInspector.NavigateTo(column.ForeignKeyReference.ReferenceColumn); } }
/// <summary>The get summary.</summary> /// <param name="column">The column.</param> /// <returns>The get summary.</returns> private string GetSummary(DbModelColumn column) { StringWriter stringWriter = new StringWriter(); if (_sqlWriter == null) { _sqlWriter = _services.Resolve <ISqlWriter>(); } _sqlWriter.WriteSummary(stringWriter, column); return(stringWriter.ToString()); }
/// <summary>The build image key.</summary> /// <param name="column">The column.</param> /// <returns>The build image key.</returns> private string BuildImageKey(DbModelColumn column) { string imageKey = column.ObjectType; if (column.IsRowVersion) { imageKey += "-RowVersion"; } else { if (column.IsKey) { imageKey += "-PK"; } if (column.ForeignKeyReference != null) { imageKey += "-FK"; } } return(imageKey); }
/// <summary>Initializes a new instance of the <see cref="DbModelForeignKeyReference"/> class.</summary> /// <param name="owningColumn">The owning column.</param> /// <param name="fkTable">The fk table.</param> /// <param name="fkColumn">The fk column.</param> public DbModelForeignKeyReference(DbModelColumn owningColumn, DbModelTable fkTable, DbModelColumn fkColumn) { OwningColumn = owningColumn; ReferenceTable = fkTable; ReferenceColumn = fkColumn; }