Example #1
0
        public static ISqlCommandMapping LinqToSqlWhere <T>(this IEntityMapping mapping,
                                                            IEnumerable <Expression <Func <T, bool> > > expressionList)
        {
            var sqlMapping = new SqlCommandMapping
            {
                CommandText = string.Empty,
                Parameters  = new Dictionary <string, object>()
            };

            foreach (var expression in expressionList)
            {
                var expressionMap = expression.GetWhereMapping();
                var property      = mapping.GetPropertyByName(expressionMap.PropertyName);

                sqlMapping.Parameters.Add($"@{expressionMap.PropertyName}", expressionMap.Value);

                if (sqlMapping.CommandText.Contains(SqlTerm.Where))
                {
                    sqlMapping.CommandText +=
                        $"{SqlTerm.And} {property.ColumnName} {expressionMap.Operator} :{expressionMap.PropertyName} ";
                }
                else
                {
                    sqlMapping.CommandText +=
                        $"{SqlTerm.Where} {property.ColumnName} {expressionMap.Operator} :{expressionMap.PropertyName} ";
                }
            }

            return(sqlMapping);
        }