/// <summary>
        /// Extracts the class properties to become an enumerable of property values.
        /// </summary>
        /// <typeparam name="TEntity">The target type of the class.</typeparam>
        /// <param name="obj">The object to be extracted.</param>
        /// <param name="command">The target command for extraction.</param>
        /// <returns>The extracted values.</returns>
        public static IEnumerable <PropertyValue> Extract <TEntity>(TEntity obj, Command command)
            where TEntity : class
        {
            switch (command)
            {
            case Command.BatchQuery:
                return(ClassPropertyValuesExtractorForBatchQuery <TEntity> .Extract(obj));

            case Command.BulkInsert:
                return(ClassPropertyValuesExtractorForBulkInsert <TEntity> .Extract(obj));

            case Command.Count:
                return(ClassPropertyValuesExtractorForCount <TEntity> .Extract(obj));

            case Command.Delete:
                return(ClassPropertyValuesExtractorForDelete <TEntity> .Extract(obj));

            case Command.DeleteAll:
                return(ClassPropertyValuesExtractorForDeleteAll <TEntity> .Extract(obj));

            case Command.InlineInsert:
                return(ClassPropertyValuesExtractorForInlineInsert <TEntity> .Extract(obj));

            case Command.InlineMerge:
                return(ClassPropertyValuesExtractorForInlineMerge <TEntity> .Extract(obj));

            case Command.InlineUpdate:
                return(ClassPropertyValuesExtractorForInlineUpdate <TEntity> .Extract(obj));

            case Command.Insert:
                return(ClassPropertyValuesExtractorForInsert <TEntity> .Extract(obj));

            case Command.Merge:
                return(ClassPropertyValuesExtractorForMerge <TEntity> .Extract(obj));

            case Command.Query:
                return(ClassPropertyValuesExtractorForQuery <TEntity> .Extract(obj));

            case Command.Truncate:
                return(ClassPropertyValuesExtractorForTruncate <TEntity> .Extract(obj));

            case Command.Update:
                return(ClassPropertyValuesExtractorForUpdate <TEntity> .Extract(obj));

            default:
                return(ClassPropertyValuesExtractor <TEntity> .Extract(obj));
            }
        }
Esempio n. 2
0
 /// <summary>
 /// Extracts the class properties to become an enumerable of property values.
 /// </summary>
 /// <typeparam name="TEntity">The target type of the class.</typeparam>
 /// <param name="obj">The object to be extracted.</param>
 /// <returns>The extracted values.</returns>
 public static IEnumerable <PropertyValue> Extract <TEntity>(TEntity obj)
     where TEntity : class
 {
     return(ClassPropertyValuesExtractor <TEntity> .Extract(obj));
 }