Example #1
0
        private ColumnInfo[] CreateColumnInfosBasedOnReturnColumnsOfFunction(ITableInfo parent)
        {
            List <ColumnInfo> newColumnInfosToReturn = new List <ColumnInfo>();

            foreach (DiscoveredColumn discoveredColumn in _tableValuedFunction.DiscoverColumns())
            {
                var toAdd = CreateNewColumnInfo(parent, discoveredColumn);
                newColumnInfosToReturn.Add(toAdd);
            }

            foreach (DiscoveredParameter discoveredParameter in _tableValuedFunction.DiscoverParameters())
            {
                CreateParameter(parent, discoveredParameter);
            }

            return(newColumnInfosToReturn.ToArray());
        }
Example #2
0
        /// <summary>
        /// Prepares to import the given table valued function <paramref name="tableValuedFunction"/> as <see cref="TableInfo"/> / <see cref="ColumnInfo"/> references in the
        /// <paramref name="repository"/>.
        /// </summary>
        /// <param name="repository"></param>
        /// <param name="tableValuedFunction"></param>
        /// <param name="usageContext"></param>
        public TableValuedFunctionImporter(ICatalogueRepository repository, DiscoveredTableValuedFunction tableValuedFunction, DataAccessContext usageContext = DataAccessContext.Any)
        {
            _repository          = repository;
            _tableValuedFunction = tableValuedFunction;
            _server   = _tableValuedFunction.Database.Server.Name;
            _database = _tableValuedFunction.Database.GetRuntimeName();
            _schema   = tableValuedFunction.Schema;

            _usageContext = usageContext;

            if (!_tableValuedFunction.Exists())
            {
                throw new Exception("Could not find tableValuedFunction with name '" + _tableValuedFunction.GetRuntimeName() + "' (.Exists() returned false)");
            }

            _tableValuedFunctionName = _tableValuedFunction.GetRuntimeName();

            _parameters = _tableValuedFunction.DiscoverParameters();

            ParametersCreated = new List <AnyTableSqlParameter>();
        }