示例#1
0
        private List <PSObject> ApplyPropertyParameters(IEnumerable <PSObject> objects)
        {
            // TODO: implement support for ExpandProperty
            if (Property == null || Property.Length == 0)
            {
                return(objects.ToList());
            }
            List <PSObject> selectedObjects = new List <PSObject>();

            foreach (var curObj in objects)
            {
                if (PSObject.Unwrap(curObj) == null)
                {
                    continue;
                }
                PSObject curSelectedObj = new PSObject();
                curSelectedObj.TypeNames.Insert(0, "Selected." + curObj.BaseObject.GetType().ToString());
                var properties = curObj.SelectProperties(Property, ExecutionContext);
                foreach (var curProp in properties)
                {
                    if (ExcludeProperty == null || !ExcludeProperty.Contains(curProp.Name))
                    {
                        curSelectedObj.Properties.Add(curProp);
                        curSelectedObj.Members.Add(curProp);
                    }
                }
                selectedObjects.Add(curSelectedObj);
            }
            return(selectedObjects);
        }
        /// <summary>
        /// Create a new entity
        /// </summary>
        /// <param name="entity">Entity</param>
        /// <returns>Task</returns>
        public virtual async Task CreateAsync(TEntity entity)
        {
            var insertColumns = EntityColumns.Where(c => !ExcludeProperty.Contains(c));

            var insertQuery = $@"INSERT INTO {TableName} ({string.Join(",", insertColumns)})
                                    VALUES (@{string.Join(",@", insertColumns)});
                                    {LastRowIdCommand}";

            IEnumerable <Guid?> result = await Connection.QueryAsync <Guid?>(insertQuery, entity);

            //EntityType.GetProperty(IdPropertyName)?
            //  .SetValue(entity, result.First());
        }
        /// <summary>
        /// Create a list of new entities
        /// </summary>
        /// <param name="entities">List of entities</param>
        /// <returns>Task</returns>
        public virtual async Task CreateManyAsync(IEnumerable <TEntity> entities)
        {
            try
            {
                var insertColumns = EntityColumns.Where(c => !ExcludeProperty.Contains(c));

                var insertCommand = $@"INSERT INTO {TableName} ({string.Join(",", insertColumns)}) 
                                    VALUES (@{string.Join(",@", insertColumns)})";
                //IEnumerable<Guid?> result = await Connection.QueryAsync<Guid?>(insertCommand, entities);

                await Connection.ExecuteAsync(insertCommand, entities.ToList());
            }
            catch
            {
            }
        }