protected override void Init() { if (Partitions.Count == 0 && !(this is CalculatedTable)) { // Make sure the table contains at least one partition (Calculated Tables handles this on their own), but don't add it to the undo stack: Handler.UndoManager.Enabled = false; if (Model.DataSources.Any(ds => ds.Type == DataSourceType.Provider) || Handler.CompatibilityLevel < 1400) { Partition.CreateNew(this, Name); } else { MPartition.CreateNew(this, Name); } Handler.UndoManager.Enabled = true; } RowLevelSecurity = new TableRLSIndexer(this); if (Handler.CompatibilityLevel >= 1400) { ObjectLevelSecurity = new TableOLSIndexer(this); } base.Init(); }
protected override void Init() { PartitionViewTable = new PartitionViewTable(this); if (Partitions.Count == 0 && !(this is CalculatedTable)) { // Make sure the table contains at least one partition (Calculated Tables handles this on their own): if (Model.DataSources.Any(ds => ds.Type == DataSourceType.Structured)) { MPartition.CreateNew(this, Name); } else { Partition.CreateNew(this, Name); } } RowLevelSecurity = new TableRLSIndexer(this); if (Handler.CompatibilityLevel >= 1400) { ObjectLevelSecurity = new TableOLSIndexer(this); } CheckChildrenErrors(); base.Init(); }
public MPartition AddMPartition(string name = null, string expression = null) { Handler.BeginUpdate("add partition"); var partition = MPartition.CreateNew(this, name); if (!string.IsNullOrEmpty(expression)) { partition.Expression = expression; } Handler.EndUpdate(); return(partition); }
public void ConvertToPowerQuery() { Handler.BeginUpdate("Convert partitions"); foreach (var oldPartition in this.Where(p => p.GetType() == typeof(Partition)).ToList()) { var newPartition = MPartition.CreateNew(Table); newPartition.DataSource = oldPartition.DataSource; newPartition.Expression = oldPartition.Query; oldPartition.Delete(); newPartition.Name = oldPartition.Name; } Handler.EndUpdate(); }