internal new static CalculatedTable CreateFromMetadata(Model parent, TOM.Table metadataObject) { if (metadataObject.GetSourceType() != TOM.PartitionSourceType.Calculated) { throw new ArgumentException("Provided metadataObject is not a Calculated Table."); } // Generate a new LineageTag if an object with the provided lineage tag already exists: if (!string.IsNullOrEmpty(metadataObject.LineageTag)) { if (parent.Handler.CompatibilityLevel < 1540) { metadataObject.LineageTag = null; } else if (parent.MetadataObject.Tables.FindByLineageTag(metadataObject.LineageTag) != metadataObject) { metadataObject.LineageTag = Guid.NewGuid().ToString(); } } var obj = new CalculatedTable(metadataObject); parent.Tables.Add(obj); obj.Init(); return(obj); }
internal new static CalculatedTable CreateFromMetadata(Model parent, TOM.Table metadataObject) { if (metadataObject.GetSourceType() != TOM.PartitionSourceType.Calculated) { throw new ArgumentException("Provided metadataObject is not a Calculated Table."); } var obj = new CalculatedTable(metadataObject); parent.Tables.Add(obj); obj.Init(); return(obj); }
internal new static CalculationGroupTable CreateFromMetadata(Model parent, TOM.Table metadataObject) { if (metadataObject.GetSourceType() != TOM.PartitionSourceType.CalculationGroup) { throw new ArgumentException("Provided metadataObject is not a Calculation Group Table."); } var obj = new CalculationGroupTable(metadataObject); parent.Tables.Add(obj); obj.Init(); //obj.NameField = new CalculationGroupAttribute(obj.DataColumns.First()); return(obj); }